{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "64c956bb",
   "metadata": {},
   "outputs": [],
   "source": [
    "import torch\n",
    "import torch.nn as nn\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import scipy.io"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "c1682ede",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Define the LEMCell\n",
    "class LEMCell(nn.Module):\n",
    "    def __init__(self, ninp, nhid, dt):\n",
    "        super(LEMCell, self).__init__()\n",
    "        self.ninp = ninp\n",
    "        self.nhid = nhid\n",
    "        self.dt = dt\n",
    "        self.inp2hid = nn.Linear(ninp, 4 * nhid)\n",
    "        self.hid2hid = nn.Linear(nhid, 3 * nhid)\n",
    "        self.transform_z = nn.Linear(nhid, nhid)\n",
    "        self.reset_parameters()\n",
    "\n",
    "    def reset_parameters(self):\n",
    "        std = 1.0 / np.sqrt(self.nhid)\n",
    "        for w in self.parameters():\n",
    "            w.data.uniform_(-std, std)\n",
    "\n",
    "    def forward(self, x, y, z):\n",
    "        transformed_inp = self.inp2hid(x)\n",
    "        transformed_hid = self.hid2hid(y)\n",
    "        i_dt1, i_dt2, i_z, i_y = transformed_inp.chunk(4, 1)\n",
    "        h_dt1, h_dt2, h_y = transformed_hid.chunk(3, 1)\n",
    "\n",
    "        ms_dt_bar = self.dt * torch.sigmoid(i_dt1 + h_dt1)\n",
    "        ms_dt = self.dt * torch.sigmoid(i_dt2 + h_dt2)\n",
    "\n",
    "        z = (1. - ms_dt) * z + ms_dt * torch.tanh(i_y + h_y)\n",
    "        y = (1. - ms_dt_bar) * y + ms_dt_bar * torch.tanh(self.transform_z(z) + i_z)\n",
    "\n",
    "        return y, z\n",
    "\n",
    "# Define the LEM model\n",
    "class LEM(nn.Module):\n",
    "    def __init__(self, ninp, nhid, nout, dt=1.):\n",
    "        super(LEM, self).__init__()\n",
    "        self.nhid = nhid\n",
    "        self.cell = LEMCell(ninp, nhid, dt)\n",
    "        self.classifier = nn.Linear(nhid, nout)\n",
    "        self.init_weights()\n",
    "\n",
    "    def init_weights(self):\n",
    "        for name, param in self.named_parameters():\n",
    "            if 'classifier' in name and 'weight' in name:\n",
    "                nn.init.kaiming_normal_(param.data)\n",
    "\n",
    "    def forward(self, input):\n",
    "        y = input.data.new(input.size(1), self.nhid).zero_()\n",
    "        z = input.data.new(input.size(1), self.nhid).zero_()\n",
    "        for x in input:\n",
    "            y, z = self.cell(x, y, z)\n",
    "        out = self.classifier(y)\n",
    "        return out\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a982afa5",
   "metadata": {},
   "source": [
    "### PINN data importing"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "79da65b0",
   "metadata": {},
   "outputs": [],
   "source": [
    "# importing data\n",
    "\n",
    "# Load the .mat file\n",
    "mat_data = scipy.io.loadmat('burg.mat')\n",
    "\n",
    "# Access the variables stored in the .mat file\n",
    "# The variable names in the .mat file become keys in the loaded dictionary\n",
    "x = mat_data['x']\n",
    "t = mat_data['t']\n",
    "u = mat_data['u1']\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bbac9f8e",
   "metadata": {},
   "source": [
    "### Exact Solution data importing"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "9967dbae",
   "metadata": {},
   "outputs": [],
   "source": [
    "# importing data\n",
    "\n",
    "import torch\n",
    "import torch.nn as nn\n",
    "import numpy as np\n",
    "import time\n",
    "import scipy.io\n",
    "\n",
    "# Load the .mat file\n",
    "mat_data = scipy.io.loadmat('burgers_shock.mat')\n",
    "\n",
    "# Access the variables stored in the .mat file\n",
    "# The variable names in the .mat file become keys in the loaded dictionary\n",
    "x = mat_data['x']\n",
    "t = mat_data['t']\n",
    "u_1 = mat_data['usol']\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "83a01b14",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(256, 100)"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Set random seed for reproducibility\n",
    "torch.manual_seed(42)\n",
    "\n",
    "# Toy problem data\n",
    "input_size = 256\n",
    "hidden_size = 32\n",
    "output_size = 256\n",
    "sequence_length = 79\n",
    "batch_size = 1\n",
    "num_epochs = 20000\n",
    "\n",
    "# Set random seed for reproducibility\n",
    "torch.manual_seed(42)\n",
    "u[:, 0:100].shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "0496e4a4",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "test data shape (256,)\n",
      "input data shape (256, 79)\n",
      "Target data shape (256, 79)\n",
      "input tensor shape torch.Size([1, 79, 256])\n",
      "Target tensor shape torch.Size([1, 79, 256])\n"
     ]
    }
   ],
   "source": [
    "input_data = u[:,0:79]\n",
    "target_data = u[:,1:80]\n",
    "\n",
    "test_data = u[:,79]\n",
    "#test_target = u[:,80:100]\n",
    "\n",
    "print(\"test data shape\", test_data.shape)\n",
    "#print(\"test target shape\", test_target.shape)\n",
    "\n",
    "print(\"input data shape\",input_data.shape)\n",
    "print(\"Target data shape\",target_data.shape)\n",
    "\n",
    "# Convert data to tensors\n",
    "input_tensor = torch.tensor(input_data.T).view(batch_size, sequence_length, input_size).float()\n",
    "target_tensor = torch.tensor(target_data.T).view(batch_size, sequence_length, output_size).float()\n",
    "\n",
    "print(\"input tensor shape\",input_tensor.shape)\n",
    "print(\"Target tensor shape\",target_tensor.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "718d5b86",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Convert test data to tensors\n",
    "test_tensor = torch.tensor(test_data.T).view(batch_size, 1, input_size).float()\n",
    "#test_target_tensor = torch.tensor(test_target.T).view(batch_size, 20, output_size).float()\n",
    "target_tensor = torch.squeeze(target_tensor)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "d733ab9a",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 10/20000, Loss: 0.3866974115371704\n",
      "Epoch: 20/20000, Loss: 0.3487780690193176\n",
      "Epoch: 30/20000, Loss: 0.3087990283966064\n",
      "Epoch: 40/20000, Loss: 0.2699531018733978\n",
      "Epoch: 50/20000, Loss: 0.2344971448183060\n",
      "Epoch: 60/20000, Loss: 0.2015173286199570\n",
      "Epoch: 70/20000, Loss: 0.1723766177892685\n",
      "Epoch: 80/20000, Loss: 0.1483513861894608\n",
      "Epoch: 90/20000, Loss: 0.1284097582101822\n",
      "Epoch: 100/20000, Loss: 0.1117339953780174\n",
      "Epoch: 110/20000, Loss: 0.0977326631546021\n",
      "Epoch: 120/20000, Loss: 0.0859487056732178\n",
      "Epoch: 130/20000, Loss: 0.0760185718536377\n",
      "Epoch: 140/20000, Loss: 0.0676476433873177\n",
      "Epoch: 150/20000, Loss: 0.0605934187769890\n",
      "Epoch: 160/20000, Loss: 0.0546537898480892\n",
      "Epoch: 170/20000, Loss: 0.0496585704386234\n",
      "Epoch: 180/20000, Loss: 0.0454635843634605\n",
      "Epoch: 190/20000, Loss: 0.0419462285935879\n",
      "Epoch: 200/20000, Loss: 0.0390020199120045\n",
      "Epoch: 210/20000, Loss: 0.0365417525172234\n",
      "Epoch: 220/20000, Loss: 0.0344892106950283\n",
      "Epoch: 230/20000, Loss: 0.0327788665890694\n",
      "Epoch: 240/20000, Loss: 0.0313525013625622\n",
      "Epoch: 250/20000, Loss: 0.0301372334361076\n",
      "Epoch: 260/20000, Loss: 0.0290109999477863\n",
      "Epoch: 270/20000, Loss: 0.0280308332294226\n",
      "Epoch: 280/20000, Loss: 0.0271436050534248\n",
      "Epoch: 290/20000, Loss: 0.0262243412435055\n",
      "Epoch: 300/20000, Loss: 0.0254273172467947\n",
      "Epoch: 310/20000, Loss: 0.0246974322944880\n",
      "Epoch: 320/20000, Loss: 0.0240183882415295\n",
      "Epoch: 330/20000, Loss: 0.0233833491802216\n",
      "Epoch: 340/20000, Loss: 0.0227856449782848\n",
      "Epoch: 350/20000, Loss: 0.0221767574548721\n",
      "Epoch: 360/20000, Loss: 0.0215996149927378\n",
      "Epoch: 370/20000, Loss: 0.0210633613169193\n",
      "Epoch: 380/20000, Loss: 0.0205504018813372\n",
      "Epoch: 390/20000, Loss: 0.0200629048049450\n",
      "Epoch: 400/20000, Loss: 0.0195939000695944\n",
      "Epoch: 410/20000, Loss: 0.0191286448389292\n",
      "Epoch: 420/20000, Loss: 0.0186489038169384\n",
      "Epoch: 430/20000, Loss: 0.0181993953883648\n",
      "Epoch: 440/20000, Loss: 0.0177528280764818\n",
      "Epoch: 450/20000, Loss: 0.0173244308680296\n",
      "Epoch: 460/20000, Loss: 0.0169120337814093\n",
      "Epoch: 470/20000, Loss: 0.0165140908211470\n",
      "Epoch: 480/20000, Loss: 0.0161296948790550\n",
      "Epoch: 490/20000, Loss: 0.0157567169517279\n",
      "Epoch: 500/20000, Loss: 0.0153942489996552\n",
      "Epoch: 510/20000, Loss: 0.0150421001017094\n",
      "Epoch: 520/20000, Loss: 0.0146992374211550\n",
      "Epoch: 530/20000, Loss: 0.0143658937886357\n",
      "Epoch: 540/20000, Loss: 0.0140422778204083\n",
      "Epoch: 550/20000, Loss: 0.0137283606454730\n",
      "Epoch: 560/20000, Loss: 0.0134236663579941\n",
      "Epoch: 570/20000, Loss: 0.0131275458261371\n",
      "Epoch: 580/20000, Loss: 0.0128393145278096\n",
      "Epoch: 590/20000, Loss: 0.0125583559274673\n",
      "Epoch: 600/20000, Loss: 0.0122841447591782\n",
      "Epoch: 610/20000, Loss: 0.0120162507519126\n",
      "Epoch: 620/20000, Loss: 0.0117543358355761\n",
      "Epoch: 630/20000, Loss: 0.0114981345832348\n",
      "Epoch: 640/20000, Loss: 0.0112474421039224\n",
      "Epoch: 650/20000, Loss: 0.0110021019354463\n",
      "Epoch: 660/20000, Loss: 0.0107619864866138\n",
      "Epoch: 670/20000, Loss: 0.0105270054191351\n",
      "Epoch: 680/20000, Loss: 0.0102970693260431\n",
      "Epoch: 690/20000, Loss: 0.0100721139460802\n",
      "Epoch: 700/20000, Loss: 0.0098520694300532\n",
      "Epoch: 710/20000, Loss: 0.0096370177343488\n",
      "Epoch: 720/20000, Loss: 0.0094266217201948\n",
      "Epoch: 730/20000, Loss: 0.0092209735885262\n",
      "Epoch: 740/20000, Loss: 0.0090200519189239\n",
      "Epoch: 750/20000, Loss: 0.0088236974552274\n",
      "Epoch: 760/20000, Loss: 0.0086318692192435\n",
      "Epoch: 770/20000, Loss: 0.0084444871172309\n",
      "Epoch: 780/20000, Loss: 0.0082614812999964\n",
      "Epoch: 790/20000, Loss: 0.0080827772617340\n",
      "Epoch: 800/20000, Loss: 0.0079082995653152\n",
      "Epoch: 810/20000, Loss: 0.0077379699796438\n",
      "Epoch: 820/20000, Loss: 0.0075717102736235\n",
      "Epoch: 830/20000, Loss: 0.0074094338342547\n",
      "Epoch: 840/20000, Loss: 0.0072510791942477\n",
      "Epoch: 850/20000, Loss: 0.0070965839549899\n",
      "Epoch: 860/20000, Loss: 0.0069457269273698\n",
      "Epoch: 870/20000, Loss: 0.0067984559573233\n",
      "Epoch: 880/20000, Loss: 0.0066545559093356\n",
      "Epoch: 890/20000, Loss: 0.0065126288682222\n",
      "Epoch: 900/20000, Loss: 0.0062295622192323\n",
      "Epoch: 910/20000, Loss: 0.0060072029009461\n",
      "Epoch: 920/20000, Loss: 0.0058312206529081\n",
      "Epoch: 930/20000, Loss: 0.0056541315279901\n",
      "Epoch: 940/20000, Loss: 0.0054842131212354\n",
      "Epoch: 950/20000, Loss: 0.0053147980943322\n",
      "Epoch: 960/20000, Loss: 0.0051327170804143\n",
      "Epoch: 970/20000, Loss: 0.0049659223295748\n",
      "Epoch: 980/20000, Loss: 0.0048077744431794\n",
      "Epoch: 990/20000, Loss: 0.0046537732705474\n",
      "Epoch: 1000/20000, Loss: 0.0045035379007459\n",
      "Epoch: 1010/20000, Loss: 0.0043577156029642\n",
      "Epoch: 1020/20000, Loss: 0.0042155655100942\n",
      "Epoch: 1030/20000, Loss: 0.0040753991343081\n",
      "Epoch: 1040/20000, Loss: 0.0039346287958324\n",
      "Epoch: 1050/20000, Loss: 0.0037930461112410\n",
      "Epoch: 1060/20000, Loss: 0.0036596946883947\n",
      "Epoch: 1070/20000, Loss: 0.0035346036311239\n",
      "Epoch: 1080/20000, Loss: 0.0034161636140198\n",
      "Epoch: 1090/20000, Loss: 0.0033023308496922\n",
      "Epoch: 1100/20000, Loss: 0.0031929996330291\n",
      "Epoch: 1110/20000, Loss: 0.0030893252696842\n",
      "Epoch: 1120/20000, Loss: 0.0029896285850555\n",
      "Epoch: 1130/20000, Loss: 0.0028939580079168\n",
      "Epoch: 1140/20000, Loss: 0.0028020783793181\n",
      "Epoch: 1150/20000, Loss: 0.0027126306667924\n",
      "Epoch: 1160/20000, Loss: 0.0026268248911947\n",
      "Epoch: 1170/20000, Loss: 0.0025455490685999\n",
      "Epoch: 1180/20000, Loss: 0.0024674416054040\n",
      "Epoch: 1190/20000, Loss: 0.0023925965651870\n",
      "Epoch: 1200/20000, Loss: 0.0023207620251924\n",
      "Epoch: 1210/20000, Loss: 0.0022518015466630\n",
      "Epoch: 1220/20000, Loss: 0.0021856061648577\n",
      "Epoch: 1230/20000, Loss: 0.0021220932248980\n",
      "Epoch: 1240/20000, Loss: 0.0020611907821149\n",
      "Epoch: 1250/20000, Loss: 0.0020028203725815\n",
      "Epoch: 1260/20000, Loss: 0.0019488724647090\n",
      "Epoch: 1270/20000, Loss: 0.0018946670461446\n",
      "Epoch: 1280/20000, Loss: 0.0018423703731969\n",
      "Epoch: 1290/20000, Loss: 0.0017932109767571\n",
      "Epoch: 1300/20000, Loss: 0.0017461210954934\n",
      "Epoch: 1310/20000, Loss: 0.0017008291324601\n",
      "Epoch: 1320/20000, Loss: 0.0016573907341808\n",
      "Epoch: 1330/20000, Loss: 0.0016156604979187\n",
      "Epoch: 1340/20000, Loss: 0.0015755523927510\n",
      "Epoch: 1350/20000, Loss: 0.0015369870234281\n",
      "Epoch: 1360/20000, Loss: 0.0014998820843175\n",
      "Epoch: 1370/20000, Loss: 0.0014641598099843\n",
      "Epoch: 1380/20000, Loss: 0.0014297413872555\n",
      "Epoch: 1390/20000, Loss: 0.0013965470716357\n",
      "Epoch: 1400/20000, Loss: 0.0013645854778588\n",
      "Epoch: 1410/20000, Loss: 0.0013335648691282\n",
      "Epoch: 1420/20000, Loss: 0.0013038037577644\n",
      "Epoch: 1430/20000, Loss: 0.0012749967863783\n",
      "Epoch: 1440/20000, Loss: 0.0012471737572923\n",
      "Epoch: 1450/20000, Loss: 0.0012202707584947\n",
      "Epoch: 1460/20000, Loss: 0.0011941986158490\n",
      "Epoch: 1470/20000, Loss: 0.0011688874801621\n",
      "Epoch: 1480/20000, Loss: 0.0011442414252087\n",
      "Epoch: 1490/20000, Loss: 0.0011204498587176\n",
      "Epoch: 1500/20000, Loss: 0.0010974769247696\n",
      "Epoch: 1510/20000, Loss: 0.0010752448579296\n",
      "Epoch: 1520/20000, Loss: 0.0010537237394601\n",
      "Epoch: 1530/20000, Loss: 0.0010328948264942\n",
      "Epoch: 1540/20000, Loss: 0.0010138462530449\n",
      "Epoch: 1550/20000, Loss: 0.0009941509924829\n",
      "Epoch: 1560/20000, Loss: 0.0009746887371875\n",
      "Epoch: 1570/20000, Loss: 0.0009561158367433\n",
      "Epoch: 1580/20000, Loss: 0.0009382710559294\n",
      "Epoch: 1590/20000, Loss: 0.0009210530552082\n",
      "Epoch: 1600/20000, Loss: 0.0009043362224475\n",
      "Epoch: 1610/20000, Loss: 0.0008881015819497\n",
      "Epoch: 1620/20000, Loss: 0.0008723307400942\n",
      "Epoch: 1630/20000, Loss: 0.0008570029167458\n",
      "Epoch: 1640/20000, Loss: 0.0008420954691246\n",
      "Epoch: 1650/20000, Loss: 0.0008275883155875\n",
      "Epoch: 1660/20000, Loss: 0.0008134644012898\n",
      "Epoch: 1670/20000, Loss: 0.0007997265784070\n",
      "Epoch: 1680/20000, Loss: 0.0007886002422310\n",
      "Epoch: 1690/20000, Loss: 0.0007735147373751\n",
      "Epoch: 1700/20000, Loss: 0.0007608847226948\n",
      "Epoch: 1710/20000, Loss: 0.0007484044181183\n",
      "Epoch: 1720/20000, Loss: 0.0007362744072452\n",
      "Epoch: 1730/20000, Loss: 0.0007245097076520\n",
      "Epoch: 1740/20000, Loss: 0.0007130693411455\n",
      "Epoch: 1750/20000, Loss: 0.0007018874748610\n",
      "Epoch: 1760/20000, Loss: 0.0006909691146575\n",
      "Epoch: 1770/20000, Loss: 0.0006802936550230\n",
      "Epoch: 1780/20000, Loss: 0.0006698502693325\n",
      "Epoch: 1790/20000, Loss: 0.0006596244056709\n",
      "Epoch: 1800/20000, Loss: 0.0006495984853245\n",
      "Epoch: 1810/20000, Loss: 0.0006397463148460\n",
      "Epoch: 1820/20000, Loss: 0.0006300231907517\n",
      "Epoch: 1830/20000, Loss: 0.0006203753873706\n",
      "Epoch: 1840/20000, Loss: 0.0006109441164881\n",
      "Epoch: 1850/20000, Loss: 0.0006018815911375\n",
      "Epoch: 1860/20000, Loss: 0.0005930468323641\n",
      "Epoch: 1870/20000, Loss: 0.0005842540995218\n",
      "Epoch: 1880/20000, Loss: 0.0005749702686444\n",
      "Epoch: 1890/20000, Loss: 0.0005663698539138\n",
      "Epoch: 1900/20000, Loss: 0.0005579125136137\n",
      "Epoch: 1910/20000, Loss: 0.0005495724617504\n",
      "Epoch: 1920/20000, Loss: 0.0005413942271844\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 1930/20000, Loss: 0.0005333498120308\n",
      "Epoch: 1940/20000, Loss: 0.0005254746065475\n",
      "Epoch: 1950/20000, Loss: 0.0005177774582990\n",
      "Epoch: 1960/20000, Loss: 0.0005102361319587\n",
      "Epoch: 1970/20000, Loss: 0.0005028438754380\n",
      "Epoch: 1980/20000, Loss: 0.0004955942276865\n",
      "Epoch: 1990/20000, Loss: 0.0004884817171842\n",
      "Epoch: 2000/20000, Loss: 0.0004817107692361\n",
      "Epoch: 2010/20000, Loss: 0.0004749310028274\n",
      "Epoch: 2020/20000, Loss: 0.0004686535976361\n",
      "Epoch: 2030/20000, Loss: 0.0004616066580638\n",
      "Epoch: 2040/20000, Loss: 0.0004549020377453\n",
      "Epoch: 2050/20000, Loss: 0.0004484553937800\n",
      "Epoch: 2060/20000, Loss: 0.0004421809571795\n",
      "Epoch: 2070/20000, Loss: 0.0004360130114947\n",
      "Epoch: 2080/20000, Loss: 0.0004299433785491\n",
      "Epoch: 2090/20000, Loss: 0.0004239823028911\n",
      "Epoch: 2100/20000, Loss: 0.0004181207332294\n",
      "Epoch: 2110/20000, Loss: 0.0004123584658373\n",
      "Epoch: 2120/20000, Loss: 0.0004066921246704\n",
      "Epoch: 2130/20000, Loss: 0.0004011191776954\n",
      "Epoch: 2140/20000, Loss: 0.0003956370055676\n",
      "Epoch: 2150/20000, Loss: 0.0003902434546035\n",
      "Epoch: 2160/20000, Loss: 0.0003849362256005\n",
      "Epoch: 2170/20000, Loss: 0.0003797135723289\n",
      "Epoch: 2180/20000, Loss: 0.0003745739522856\n",
      "Epoch: 2190/20000, Loss: 0.0003695400082506\n",
      "Epoch: 2200/20000, Loss: 0.0003691661695484\n",
      "Epoch: 2210/20000, Loss: 0.0003596619935706\n",
      "Epoch: 2220/20000, Loss: 0.0003548728709575\n",
      "Epoch: 2230/20000, Loss: 0.0003501392784528\n",
      "Epoch: 2240/20000, Loss: 0.0003454872057773\n",
      "Epoch: 2250/20000, Loss: 0.0003409073397052\n",
      "Epoch: 2260/20000, Loss: 0.0003363889409229\n",
      "Epoch: 2270/20000, Loss: 0.0003319375973660\n",
      "Epoch: 2280/20000, Loss: 0.0003275649214629\n",
      "Epoch: 2290/20000, Loss: 0.0003232590388507\n",
      "Epoch: 2300/20000, Loss: 0.0003190202987753\n",
      "Epoch: 2310/20000, Loss: 0.0003148464893457\n",
      "Epoch: 2320/20000, Loss: 0.0003107367083430\n",
      "Epoch: 2330/20000, Loss: 0.0003066896169912\n",
      "Epoch: 2340/20000, Loss: 0.0003027040802408\n",
      "Epoch: 2350/20000, Loss: 0.0002987789630424\n",
      "Epoch: 2360/20000, Loss: 0.0002949130430352\n",
      "Epoch: 2370/20000, Loss: 0.0002911053597927\n",
      "Epoch: 2380/20000, Loss: 0.0002873823104892\n",
      "Epoch: 2390/20000, Loss: 0.0002882682892960\n",
      "Epoch: 2400/20000, Loss: 0.0002802006201819\n",
      "Epoch: 2410/20000, Loss: 0.0002766721299849\n",
      "Epoch: 2420/20000, Loss: 0.0002730599953793\n",
      "Epoch: 2430/20000, Loss: 0.0002695392759051\n",
      "Epoch: 2440/20000, Loss: 0.0002660795289557\n",
      "Epoch: 2450/20000, Loss: 0.0002626788918860\n",
      "Epoch: 2460/20000, Loss: 0.0002593506360427\n",
      "Epoch: 2470/20000, Loss: 0.0002560761640780\n",
      "Epoch: 2480/20000, Loss: 0.0002528463373892\n",
      "Epoch: 2490/20000, Loss: 0.0002496642700862\n",
      "Epoch: 2500/20000, Loss: 0.0002465279831085\n",
      "Epoch: 2510/20000, Loss: 0.0002434363996144\n",
      "Epoch: 2520/20000, Loss: 0.0002403890684946\n",
      "Epoch: 2530/20000, Loss: 0.0002373852184974\n",
      "Epoch: 2540/20000, Loss: 0.0002344240056118\n",
      "Epoch: 2550/20000, Loss: 0.0002315048477612\n",
      "Epoch: 2560/20000, Loss: 0.0002286278613610\n",
      "Epoch: 2570/20000, Loss: 0.0002259152533952\n",
      "Epoch: 2580/20000, Loss: 0.0002276414597873\n",
      "Epoch: 2590/20000, Loss: 0.0002219442394562\n",
      "Epoch: 2600/20000, Loss: 0.0002180748851970\n",
      "Epoch: 2610/20000, Loss: 0.0002150467626052\n",
      "Epoch: 2620/20000, Loss: 0.0002122822479578\n",
      "Epoch: 2630/20000, Loss: 0.0002096446696669\n",
      "Epoch: 2640/20000, Loss: 0.0002070846676361\n",
      "Epoch: 2650/20000, Loss: 0.0002045614237431\n",
      "Epoch: 2660/20000, Loss: 0.0002020688698394\n",
      "Epoch: 2670/20000, Loss: 0.0001996151258936\n",
      "Epoch: 2680/20000, Loss: 0.0001971967285499\n",
      "Epoch: 2690/20000, Loss: 0.0001948161370819\n",
      "Epoch: 2700/20000, Loss: 0.0001925539399963\n",
      "Epoch: 2710/20000, Loss: 0.0001932163722813\n",
      "Epoch: 2720/20000, Loss: 0.0001879691262729\n",
      "Epoch: 2730/20000, Loss: 0.0001865569793154\n",
      "Epoch: 2740/20000, Loss: 0.0001835473376559\n",
      "Epoch: 2750/20000, Loss: 0.0001814850256778\n",
      "Epoch: 2760/20000, Loss: 0.0001792719849618\n",
      "Epoch: 2770/20000, Loss: 0.0001771659008227\n",
      "Epoch: 2780/20000, Loss: 0.0001751063973643\n",
      "Epoch: 2790/20000, Loss: 0.0001730768999550\n",
      "Epoch: 2800/20000, Loss: 0.0001710791984806\n",
      "Epoch: 2810/20000, Loss: 0.0001691127836239\n",
      "Epoch: 2820/20000, Loss: 0.0001671766221989\n",
      "Epoch: 2830/20000, Loss: 0.0001652695500525\n",
      "Epoch: 2840/20000, Loss: 0.0001633911742829\n",
      "Epoch: 2850/20000, Loss: 0.0001615404908080\n",
      "Epoch: 2860/20000, Loss: 0.0001597166119609\n",
      "Epoch: 2870/20000, Loss: 0.0001579186646268\n",
      "Epoch: 2880/20000, Loss: 0.0001561477547511\n",
      "Epoch: 2890/20000, Loss: 0.0001665225136094\n",
      "Epoch: 2900/20000, Loss: 0.0001565208513057\n",
      "Epoch: 2910/20000, Loss: 0.0001525935513200\n",
      "Epoch: 2920/20000, Loss: 0.0001496629702160\n",
      "Epoch: 2930/20000, Loss: 0.0001478047779528\n",
      "Epoch: 2940/20000, Loss: 0.0001462288346374\n",
      "Epoch: 2950/20000, Loss: 0.0001446359528927\n",
      "Epoch: 2960/20000, Loss: 0.0001430512929801\n",
      "Epoch: 2970/20000, Loss: 0.0001415176375303\n",
      "Epoch: 2980/20000, Loss: 0.0001400026085321\n",
      "Epoch: 2990/20000, Loss: 0.0001385123323416\n",
      "Epoch: 3000/20000, Loss: 0.0001370456448058\n",
      "Epoch: 3010/20000, Loss: 0.0001356026477879\n",
      "Epoch: 3020/20000, Loss: 0.0001341827301076\n",
      "Epoch: 3030/20000, Loss: 0.0001330258528469\n",
      "Epoch: 3040/20000, Loss: 0.0001316766283708\n",
      "Epoch: 3050/20000, Loss: 0.0001301953161601\n",
      "Epoch: 3060/20000, Loss: 0.0001288301282329\n",
      "Epoch: 3070/20000, Loss: 0.0001274092355743\n",
      "Epoch: 3080/20000, Loss: 0.0001261238503503\n",
      "Epoch: 3090/20000, Loss: 0.0001248394255526\n",
      "Epoch: 3100/20000, Loss: 0.0001235752715729\n",
      "Epoch: 3110/20000, Loss: 0.0001223294966621\n",
      "Epoch: 3120/20000, Loss: 0.0001211094349856\n",
      "Epoch: 3130/20000, Loss: 0.0001202255007229\n",
      "Epoch: 3140/20000, Loss: 0.0001194790893351\n",
      "Epoch: 3150/20000, Loss: 0.0001186209992738\n",
      "Epoch: 3160/20000, Loss: 0.0001168339440483\n",
      "Epoch: 3170/20000, Loss: 0.0001154477868113\n",
      "Epoch: 3180/20000, Loss: 0.0001142158216680\n",
      "Epoch: 3190/20000, Loss: 0.0001130562523031\n",
      "Epoch: 3200/20000, Loss: 0.0001119694934459\n",
      "Epoch: 3210/20000, Loss: 0.0001108833603212\n",
      "Epoch: 3220/20000, Loss: 0.0001098220527638\n",
      "Epoch: 3230/20000, Loss: 0.0001088975768653\n",
      "Epoch: 3240/20000, Loss: 0.0001079100838979\n",
      "Epoch: 3250/20000, Loss: 0.0001068031560862\n",
      "Epoch: 3260/20000, Loss: 0.0001058145935531\n",
      "Epoch: 3270/20000, Loss: 0.0001048686463037\n",
      "Epoch: 3280/20000, Loss: 0.0001038466070895\n",
      "Epoch: 3290/20000, Loss: 0.0001028457627399\n",
      "Epoch: 3300/20000, Loss: 0.0001018743569148\n",
      "Epoch: 3310/20000, Loss: 0.0001009241968859\n",
      "Epoch: 3320/20000, Loss: 0.0000999886178761\n",
      "Epoch: 3330/20000, Loss: 0.0000990587941487\n",
      "Epoch: 3340/20000, Loss: 0.0000981347693596\n",
      "Epoch: 3350/20000, Loss: 0.0000972104899120\n",
      "Epoch: 3360/20000, Loss: 0.0000962764606811\n",
      "Epoch: 3370/20000, Loss: 0.0000953120106715\n",
      "Epoch: 3380/20000, Loss: 0.0000942826445680\n",
      "Epoch: 3390/20000, Loss: 0.0000932465336518\n",
      "Epoch: 3400/20000, Loss: 0.0001057292902260\n",
      "Epoch: 3410/20000, Loss: 0.0000958758319030\n",
      "Epoch: 3420/20000, Loss: 0.0000906791319721\n",
      "Epoch: 3430/20000, Loss: 0.0000902903484530\n",
      "Epoch: 3440/20000, Loss: 0.0000888653521542\n",
      "Epoch: 3450/20000, Loss: 0.0000880199368112\n",
      "Epoch: 3460/20000, Loss: 0.0000871755473781\n",
      "Epoch: 3470/20000, Loss: 0.0000863634340931\n",
      "Epoch: 3480/20000, Loss: 0.0000855632752064\n",
      "Epoch: 3490/20000, Loss: 0.0000847802948556\n",
      "Epoch: 3500/20000, Loss: 0.0000840038992465\n",
      "Epoch: 3510/20000, Loss: 0.0000832384976093\n",
      "Epoch: 3520/20000, Loss: 0.0000830905337352\n",
      "Epoch: 3530/20000, Loss: 0.0000820398636279\n",
      "Epoch: 3540/20000, Loss: 0.0000811446734588\n",
      "Epoch: 3550/20000, Loss: 0.0000803393704700\n",
      "Epoch: 3560/20000, Loss: 0.0000795831801952\n",
      "Epoch: 3570/20000, Loss: 0.0000788801189628\n",
      "Epoch: 3580/20000, Loss: 0.0000781730705057\n",
      "Epoch: 3590/20000, Loss: 0.0000774797081249\n",
      "Epoch: 3600/20000, Loss: 0.0000768206373323\n",
      "Epoch: 3610/20000, Loss: 0.0000786115269875\n",
      "Epoch: 3620/20000, Loss: 0.0000756542649469\n",
      "Epoch: 3630/20000, Loss: 0.0000750070030335\n",
      "Epoch: 3640/20000, Loss: 0.0000741653930163\n",
      "Epoch: 3650/20000, Loss: 0.0000734915738576\n",
      "Epoch: 3660/20000, Loss: 0.0000728492668713\n",
      "Epoch: 3670/20000, Loss: 0.0000722017648513\n",
      "Epoch: 3680/20000, Loss: 0.0000715629212209\n",
      "Epoch: 3690/20000, Loss: 0.0000709358791937\n",
      "Epoch: 3700/20000, Loss: 0.0000703158948454\n",
      "Epoch: 3710/20000, Loss: 0.0000698193689459\n",
      "Epoch: 3720/20000, Loss: 0.0000773520223447\n",
      "Epoch: 3730/20000, Loss: 0.0000685257982695\n",
      "Epoch: 3740/20000, Loss: 0.0000680922021274\n",
      "Epoch: 3750/20000, Loss: 0.0000675284609315\n",
      "Epoch: 3760/20000, Loss: 0.0000668838256388\n",
      "Epoch: 3770/20000, Loss: 0.0000662338061375\n",
      "Epoch: 3780/20000, Loss: 0.0000656536431052\n",
      "Epoch: 3790/20000, Loss: 0.0000651037116768\n",
      "Epoch: 3800/20000, Loss: 0.0000645508480375\n",
      "Epoch: 3810/20000, Loss: 0.0000640090365778\n",
      "Epoch: 3820/20000, Loss: 0.0000634729221929\n",
      "Epoch: 3830/20000, Loss: 0.0000629423375358\n",
      "Epoch: 3840/20000, Loss: 0.0000624173771939\n",
      "Epoch: 3850/20000, Loss: 0.0000618978010607\n",
      "Epoch: 3860/20000, Loss: 0.0000613835654804\n",
      "Epoch: 3870/20000, Loss: 0.0000608746049693\n",
      "Epoch: 3880/20000, Loss: 0.0000603746084380\n",
      "Epoch: 3890/20000, Loss: 0.0000604504748480\n",
      "Epoch: 3900/20000, Loss: 0.0000609979106230\n",
      "Epoch: 3910/20000, Loss: 0.0000606508037890\n",
      "Epoch: 3920/20000, Loss: 0.0000589566152485\n",
      "Epoch: 3930/20000, Loss: 0.0000581024323765\n",
      "Epoch: 3940/20000, Loss: 0.0000575396370550\n",
      "Epoch: 3950/20000, Loss: 0.0000570474148844\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 3960/20000, Loss: 0.0000565716400160\n",
      "Epoch: 3970/20000, Loss: 0.0000561024280614\n",
      "Epoch: 3980/20000, Loss: 0.0000556431805308\n",
      "Epoch: 3990/20000, Loss: 0.0000551929806534\n",
      "Epoch: 4000/20000, Loss: 0.0000547458403162\n",
      "Epoch: 4010/20000, Loss: 0.0000543032838323\n",
      "Epoch: 4020/20000, Loss: 0.0000538645617780\n",
      "Epoch: 4030/20000, Loss: 0.0000534298451385\n",
      "Epoch: 4040/20000, Loss: 0.0000529989993083\n",
      "Epoch: 4050/20000, Loss: 0.0000525718860445\n",
      "Epoch: 4060/20000, Loss: 0.0000521485599165\n",
      "Epoch: 4070/20000, Loss: 0.0000517288863193\n",
      "Epoch: 4080/20000, Loss: 0.0000513128215971\n",
      "Epoch: 4090/20000, Loss: 0.0000509003548359\n",
      "Epoch: 4100/20000, Loss: 0.0000504917079525\n",
      "Epoch: 4110/20000, Loss: 0.0000501315334986\n",
      "Epoch: 4120/20000, Loss: 0.0000600698513153\n",
      "Epoch: 4130/20000, Loss: 0.0000499347224832\n",
      "Epoch: 4140/20000, Loss: 0.0000489288395329\n",
      "Epoch: 4150/20000, Loss: 0.0000486599674332\n",
      "Epoch: 4160/20000, Loss: 0.0000482952382299\n",
      "Epoch: 4170/20000, Loss: 0.0000478367001051\n",
      "Epoch: 4180/20000, Loss: 0.0000474102562293\n",
      "Epoch: 4190/20000, Loss: 0.0000470144477731\n",
      "Epoch: 4200/20000, Loss: 0.0000466332130600\n",
      "Epoch: 4210/20000, Loss: 0.0000462596944999\n",
      "Epoch: 4220/20000, Loss: 0.0000458913273178\n",
      "Epoch: 4230/20000, Loss: 0.0000455263143522\n",
      "Epoch: 4240/20000, Loss: 0.0000451638879895\n",
      "Epoch: 4250/20000, Loss: 0.0000448044193035\n",
      "Epoch: 4260/20000, Loss: 0.0000444477773272\n",
      "Epoch: 4270/20000, Loss: 0.0000440939911641\n",
      "Epoch: 4280/20000, Loss: 0.0000437430026068\n",
      "Epoch: 4290/20000, Loss: 0.0000433948443970\n",
      "Epoch: 4300/20000, Loss: 0.0000430494292232\n",
      "Epoch: 4310/20000, Loss: 0.0000427067861892\n",
      "Epoch: 4320/20000, Loss: 0.0000423668971052\n",
      "Epoch: 4330/20000, Loss: 0.0000420296673838\n",
      "Epoch: 4340/20000, Loss: 0.0000416951261286\n",
      "Epoch: 4350/20000, Loss: 0.0000413632114942\n",
      "Epoch: 4360/20000, Loss: 0.0000410339598602\n",
      "Epoch: 4370/20000, Loss: 0.0000407160950999\n",
      "Epoch: 4380/20000, Loss: 0.0000436868031102\n",
      "Epoch: 4390/20000, Loss: 0.0000482754367113\n",
      "Epoch: 4400/20000, Loss: 0.0000426176629844\n",
      "Epoch: 4410/20000, Loss: 0.0000399056989409\n",
      "Epoch: 4420/20000, Loss: 0.0000391463363485\n",
      "Epoch: 4430/20000, Loss: 0.0000388943190046\n",
      "Epoch: 4440/20000, Loss: 0.0000385690727853\n",
      "Epoch: 4450/20000, Loss: 0.0000382385987905\n",
      "Epoch: 4460/20000, Loss: 0.0000379253542633\n",
      "Epoch: 4470/20000, Loss: 0.0000376216521545\n",
      "Epoch: 4480/20000, Loss: 0.0000373226976080\n",
      "Epoch: 4490/20000, Loss: 0.0000370269408450\n",
      "Epoch: 4500/20000, Loss: 0.0000367339634977\n",
      "Epoch: 4510/20000, Loss: 0.0000364434235962\n",
      "Epoch: 4520/20000, Loss: 0.0000361550737580\n",
      "Epoch: 4530/20000, Loss: 0.0000358689685527\n",
      "Epoch: 4540/20000, Loss: 0.0000355850970664\n",
      "Epoch: 4550/20000, Loss: 0.0000353034301952\n",
      "Epoch: 4560/20000, Loss: 0.0000350239060936\n",
      "Epoch: 4570/20000, Loss: 0.0000347465538653\n",
      "Epoch: 4580/20000, Loss: 0.0000344713444065\n",
      "Epoch: 4590/20000, Loss: 0.0000341982668033\n",
      "Epoch: 4600/20000, Loss: 0.0000339272810379\n",
      "Epoch: 4610/20000, Loss: 0.0000336584162142\n",
      "Epoch: 4620/20000, Loss: 0.0000333916323143\n",
      "Epoch: 4630/20000, Loss: 0.0000331268893206\n",
      "Epoch: 4640/20000, Loss: 0.0000328642236127\n",
      "Epoch: 4650/20000, Loss: 0.0000326036242768\n",
      "Epoch: 4660/20000, Loss: 0.0000323485655827\n",
      "Epoch: 4670/20000, Loss: 0.0000332166382577\n",
      "Epoch: 4680/20000, Loss: 0.0000322020969179\n",
      "Epoch: 4690/20000, Loss: 0.0000317167323374\n",
      "Epoch: 4700/20000, Loss: 0.0000319675054925\n",
      "Epoch: 4710/20000, Loss: 0.0000315521574521\n",
      "Epoch: 4720/20000, Loss: 0.0000310000723402\n",
      "Epoch: 4730/20000, Loss: 0.0000306472211378\n",
      "Epoch: 4740/20000, Loss: 0.0000303832784994\n",
      "Epoch: 4750/20000, Loss: 0.0000301399613818\n",
      "Epoch: 4760/20000, Loss: 0.0000299017447105\n",
      "Epoch: 4770/20000, Loss: 0.0000296658654406\n",
      "Epoch: 4780/20000, Loss: 0.0000294318069791\n",
      "Epoch: 4790/20000, Loss: 0.0000291997457680\n",
      "Epoch: 4800/20000, Loss: 0.0000289697818516\n",
      "Epoch: 4810/20000, Loss: 0.0000287417042273\n",
      "Epoch: 4820/20000, Loss: 0.0000285153928417\n",
      "Epoch: 4830/20000, Loss: 0.0000282909149973\n",
      "Epoch: 4840/20000, Loss: 0.0000280681942968\n",
      "Epoch: 4850/20000, Loss: 0.0000278472525679\n",
      "Epoch: 4860/20000, Loss: 0.0000276280643448\n",
      "Epoch: 4870/20000, Loss: 0.0000274106423603\n",
      "Epoch: 4880/20000, Loss: 0.0000271949575108\n",
      "Epoch: 4890/20000, Loss: 0.0000269809897873\n",
      "Epoch: 4900/20000, Loss: 0.0000267687482847\n",
      "Epoch: 4910/20000, Loss: 0.0000265582166321\n",
      "Epoch: 4920/20000, Loss: 0.0000263493784587\n",
      "Epoch: 4930/20000, Loss: 0.0000261422283074\n",
      "Epoch: 4940/20000, Loss: 0.0000259368262050\n",
      "Epoch: 4950/20000, Loss: 0.0000257434476225\n",
      "Epoch: 4960/20000, Loss: 0.0000283095123450\n",
      "Epoch: 4970/20000, Loss: 0.0000307063637592\n",
      "Epoch: 4980/20000, Loss: 0.0000265412163571\n",
      "Epoch: 4990/20000, Loss: 0.0000257511037489\n",
      "Epoch: 5000/20000, Loss: 0.0000251204728556\n",
      "Epoch: 5010/20000, Loss: 0.0000247008010774\n",
      "Epoch: 5020/20000, Loss: 0.0000244232523983\n",
      "Epoch: 5030/20000, Loss: 0.0000242023688770\n",
      "Epoch: 5040/20000, Loss: 0.0000240019689954\n",
      "Epoch: 5050/20000, Loss: 0.0000238109951169\n",
      "Epoch: 5060/20000, Loss: 0.0000236255018535\n",
      "Epoch: 5070/20000, Loss: 0.0000234423823713\n",
      "Epoch: 5080/20000, Loss: 0.0000232603088079\n",
      "Epoch: 5090/20000, Loss: 0.0000230799778365\n",
      "Epoch: 5100/20000, Loss: 0.0000229011711781\n",
      "Epoch: 5110/20000, Loss: 0.0000227238760999\n",
      "Epoch: 5120/20000, Loss: 0.0000225480689551\n",
      "Epoch: 5130/20000, Loss: 0.0000223737351916\n",
      "Epoch: 5140/20000, Loss: 0.0000222008802666\n",
      "Epoch: 5150/20000, Loss: 0.0000220294823521\n",
      "Epoch: 5160/20000, Loss: 0.0000218595359911\n",
      "Epoch: 5170/20000, Loss: 0.0000216910302697\n",
      "Epoch: 5180/20000, Loss: 0.0000215239597310\n",
      "Epoch: 5190/20000, Loss: 0.0000213583280129\n",
      "Epoch: 5200/20000, Loss: 0.0000211940860027\n",
      "Epoch: 5210/20000, Loss: 0.0000210312518902\n",
      "Epoch: 5220/20000, Loss: 0.0000208709934668\n",
      "Epoch: 5230/20000, Loss: 0.0000209486370295\n",
      "Epoch: 5240/20000, Loss: 0.0000362059799954\n",
      "Epoch: 5250/20000, Loss: 0.0000243194881477\n",
      "Epoch: 5260/20000, Loss: 0.0000218274180952\n",
      "Epoch: 5270/20000, Loss: 0.0000207065695577\n",
      "Epoch: 5280/20000, Loss: 0.0000201481598197\n",
      "Epoch: 5290/20000, Loss: 0.0000198648885998\n",
      "Epoch: 5300/20000, Loss: 0.0000196738019440\n",
      "Epoch: 5310/20000, Loss: 0.0000195097945834\n",
      "Epoch: 5320/20000, Loss: 0.0000193554278667\n",
      "Epoch: 5330/20000, Loss: 0.0000192068746401\n",
      "Epoch: 5340/20000, Loss: 0.0000190622795344\n",
      "Epoch: 5350/20000, Loss: 0.0000189191414393\n",
      "Epoch: 5360/20000, Loss: 0.0000187770510820\n",
      "Epoch: 5370/20000, Loss: 0.0000186363995454\n",
      "Epoch: 5380/20000, Loss: 0.0000184969339898\n",
      "Epoch: 5390/20000, Loss: 0.0000183587308129\n",
      "Epoch: 5400/20000, Loss: 0.0000182217627298\n",
      "Epoch: 5410/20000, Loss: 0.0000180859951797\n",
      "Epoch: 5420/20000, Loss: 0.0000179514408956\n",
      "Epoch: 5430/20000, Loss: 0.0000178180907824\n",
      "Epoch: 5440/20000, Loss: 0.0000176858957275\n",
      "Epoch: 5450/20000, Loss: 0.0000175549030246\n",
      "Epoch: 5460/20000, Loss: 0.0000174250562850\n",
      "Epoch: 5470/20000, Loss: 0.0000172963991645\n",
      "Epoch: 5480/20000, Loss: 0.0000171688698174\n",
      "Epoch: 5490/20000, Loss: 0.0000170425282704\n",
      "Epoch: 5500/20000, Loss: 0.0000169214436028\n",
      "Epoch: 5510/20000, Loss: 0.0000179014296009\n",
      "Epoch: 5520/20000, Loss: 0.0000167307098309\n",
      "Epoch: 5530/20000, Loss: 0.0000168716105691\n",
      "Epoch: 5540/20000, Loss: 0.0000164557168318\n",
      "Epoch: 5550/20000, Loss: 0.0000164246303029\n",
      "Epoch: 5560/20000, Loss: 0.0000162908600032\n",
      "Epoch: 5570/20000, Loss: 0.0000161285624927\n",
      "Epoch: 5580/20000, Loss: 0.0000159870796779\n",
      "Epoch: 5590/20000, Loss: 0.0000158621860464\n",
      "Epoch: 5600/20000, Loss: 0.0000157459180627\n",
      "Epoch: 5610/20000, Loss: 0.0000156334208441\n",
      "Epoch: 5620/20000, Loss: 0.0000155219440785\n",
      "Epoch: 5630/20000, Loss: 0.0000154110421136\n",
      "Epoch: 5640/20000, Loss: 0.0000153014407260\n",
      "Epoch: 5650/20000, Loss: 0.0000151928807099\n",
      "Epoch: 5660/20000, Loss: 0.0000150852920342\n",
      "Epoch: 5670/20000, Loss: 0.0000149786992552\n",
      "Epoch: 5680/20000, Loss: 0.0000148730914589\n",
      "Epoch: 5690/20000, Loss: 0.0000147684404510\n",
      "Epoch: 5700/20000, Loss: 0.0000146647262227\n",
      "Epoch: 5710/20000, Loss: 0.0000145619715113\n",
      "Epoch: 5720/20000, Loss: 0.0000144601535794\n",
      "Epoch: 5730/20000, Loss: 0.0000143592451423\n",
      "Epoch: 5740/20000, Loss: 0.0000142592571137\n",
      "Epoch: 5750/20000, Loss: 0.0000141601949508\n",
      "Epoch: 5760/20000, Loss: 0.0000140620231832\n",
      "Epoch: 5770/20000, Loss: 0.0000139648636832\n",
      "Epoch: 5780/20000, Loss: 0.0000138783070724\n",
      "Epoch: 5790/20000, Loss: 0.0000156589212565\n",
      "Epoch: 5800/20000, Loss: 0.0000144529358295\n",
      "Epoch: 5810/20000, Loss: 0.0000138168334161\n",
      "Epoch: 5820/20000, Loss: 0.0000136330281748\n",
      "Epoch: 5830/20000, Loss: 0.0000134760884976\n",
      "Epoch: 5840/20000, Loss: 0.0000133682970045\n",
      "Epoch: 5850/20000, Loss: 0.0000132683271659\n",
      "Epoch: 5860/20000, Loss: 0.0000131631368276\n",
      "Epoch: 5870/20000, Loss: 0.0000130597509269\n",
      "Epoch: 5880/20000, Loss: 0.0000129683867272\n",
      "Epoch: 5890/20000, Loss: 0.0000128825449792\n",
      "Epoch: 5900/20000, Loss: 0.0000127958592202\n",
      "Epoch: 5910/20000, Loss: 0.0000127108924062\n",
      "Epoch: 5920/20000, Loss: 0.0000126264912979\n",
      "Epoch: 5930/20000, Loss: 0.0000125430069602\n",
      "Epoch: 5940/20000, Loss: 0.0000124602693177\n",
      "Epoch: 5950/20000, Loss: 0.0000123782683659\n",
      "Epoch: 5960/20000, Loss: 0.0000122970359371\n",
      "Epoch: 5970/20000, Loss: 0.0000122165374705\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 5980/20000, Loss: 0.0000121367511383\n",
      "Epoch: 5990/20000, Loss: 0.0000120576887639\n",
      "Epoch: 6000/20000, Loss: 0.0000119793430713\n",
      "Epoch: 6010/20000, Loss: 0.0000119017131510\n",
      "Epoch: 6020/20000, Loss: 0.0000118247817227\n",
      "Epoch: 6030/20000, Loss: 0.0000117485860756\n",
      "Epoch: 6040/20000, Loss: 0.0000116813589557\n",
      "Epoch: 6050/20000, Loss: 0.0000139671901707\n",
      "Epoch: 6060/20000, Loss: 0.0000154638419190\n",
      "Epoch: 6070/20000, Loss: 0.0000123951194837\n",
      "Epoch: 6080/20000, Loss: 0.0000121474904518\n",
      "Epoch: 6090/20000, Loss: 0.0000117295630844\n",
      "Epoch: 6100/20000, Loss: 0.0000114110589493\n",
      "Epoch: 6110/20000, Loss: 0.0000112374718810\n",
      "Epoch: 6120/20000, Loss: 0.0000111306071631\n",
      "Epoch: 6130/20000, Loss: 0.0000110472938104\n",
      "Epoch: 6140/20000, Loss: 0.0000109731472548\n",
      "Epoch: 6150/20000, Loss: 0.0000109037209768\n",
      "Epoch: 6160/20000, Loss: 0.0000108365056803\n",
      "Epoch: 6170/20000, Loss: 0.0000107697151179\n",
      "Epoch: 6180/20000, Loss: 0.0000107034502435\n",
      "Epoch: 6190/20000, Loss: 0.0000106379411591\n",
      "Epoch: 6200/20000, Loss: 0.0000105729841380\n",
      "Epoch: 6210/20000, Loss: 0.0000105085991891\n",
      "Epoch: 6220/20000, Loss: 0.0000104447926788\n",
      "Epoch: 6230/20000, Loss: 0.0000103815673356\n",
      "Epoch: 6240/20000, Loss: 0.0000103188895082\n",
      "Epoch: 6250/20000, Loss: 0.0000102567619251\n",
      "Epoch: 6260/20000, Loss: 0.0000101951864053\n",
      "Epoch: 6270/20000, Loss: 0.0000101341493064\n",
      "Epoch: 6280/20000, Loss: 0.0000100736506283\n",
      "Epoch: 6290/20000, Loss: 0.0000100136740002\n",
      "Epoch: 6300/20000, Loss: 0.0000099542285170\n",
      "Epoch: 6310/20000, Loss: 0.0000098953496490\n",
      "Epoch: 6320/20000, Loss: 0.0000098416976471\n",
      "Epoch: 6330/20000, Loss: 0.0000106424995465\n",
      "Epoch: 6340/20000, Loss: 0.0000123347972476\n",
      "Epoch: 6350/20000, Loss: 0.0000128156943902\n",
      "Epoch: 6360/20000, Loss: 0.0000107798405224\n",
      "Epoch: 6370/20000, Loss: 0.0000099845246950\n",
      "Epoch: 6380/20000, Loss: 0.0000096753101388\n",
      "Epoch: 6390/20000, Loss: 0.0000095197319752\n",
      "Epoch: 6400/20000, Loss: 0.0000094191145763\n",
      "Epoch: 6410/20000, Loss: 0.0000093490189101\n",
      "Epoch: 6420/20000, Loss: 0.0000092955497166\n",
      "Epoch: 6430/20000, Loss: 0.0000092430036602\n",
      "Epoch: 6440/20000, Loss: 0.0000091895935839\n",
      "Epoch: 6450/20000, Loss: 0.0000091378906291\n",
      "Epoch: 6460/20000, Loss: 0.0000090863377409\n",
      "Epoch: 6470/20000, Loss: 0.0000090353942142\n",
      "Epoch: 6480/20000, Loss: 0.0000089848745120\n",
      "Epoch: 6490/20000, Loss: 0.0000089347895482\n",
      "Epoch: 6500/20000, Loss: 0.0000088851375040\n",
      "Epoch: 6510/20000, Loss: 0.0000088359092842\n",
      "Epoch: 6520/20000, Loss: 0.0000087870848802\n",
      "Epoch: 6530/20000, Loss: 0.0000087386788437\n",
      "Epoch: 6540/20000, Loss: 0.0000086906784418\n",
      "Epoch: 6550/20000, Loss: 0.0000086430845840\n",
      "Epoch: 6560/20000, Loss: 0.0000085958763520\n",
      "Epoch: 6570/20000, Loss: 0.0000085491628852\n",
      "Epoch: 6580/20000, Loss: 0.0000085100828073\n",
      "Epoch: 6590/20000, Loss: 0.0000098107584563\n",
      "Epoch: 6600/20000, Loss: 0.0000085431202024\n",
      "Epoch: 6610/20000, Loss: 0.0000099019980553\n",
      "Epoch: 6620/20000, Loss: 0.0000089791947175\n",
      "Epoch: 6630/20000, Loss: 0.0000085475548985\n",
      "Epoch: 6640/20000, Loss: 0.0000083669865489\n",
      "Epoch: 6650/20000, Loss: 0.0000082591623141\n",
      "Epoch: 6660/20000, Loss: 0.0000081767984739\n",
      "Epoch: 6670/20000, Loss: 0.0000081166999735\n",
      "Epoch: 6680/20000, Loss: 0.0000080735062511\n",
      "Epoch: 6690/20000, Loss: 0.0000080315858213\n",
      "Epoch: 6700/20000, Loss: 0.0000079887749962\n",
      "Epoch: 6710/20000, Loss: 0.0000079474548329\n",
      "Epoch: 6720/20000, Loss: 0.0000079062228906\n",
      "Epoch: 6730/20000, Loss: 0.0000078654402387\n",
      "Epoch: 6740/20000, Loss: 0.0000078250168372\n",
      "Epoch: 6750/20000, Loss: 0.0000077848935689\n",
      "Epoch: 6760/20000, Loss: 0.0000077451113611\n",
      "Epoch: 6770/20000, Loss: 0.0000077056365626\n",
      "Epoch: 6780/20000, Loss: 0.0000076664737207\n",
      "Epoch: 6790/20000, Loss: 0.0000076276219261\n",
      "Epoch: 6800/20000, Loss: 0.0000075890743574\n",
      "Epoch: 6810/20000, Loss: 0.0000075508201007\n",
      "Epoch: 6820/20000, Loss: 0.0000075128755270\n",
      "Epoch: 6830/20000, Loss: 0.0000074754530033\n",
      "Epoch: 6840/20000, Loss: 0.0000074619192674\n",
      "Epoch: 6850/20000, Loss: 0.0000119979740703\n",
      "Epoch: 6860/20000, Loss: 0.0000148354156408\n",
      "Epoch: 6870/20000, Loss: 0.0000087034013632\n",
      "Epoch: 6880/20000, Loss: 0.0000077235645222\n",
      "Epoch: 6890/20000, Loss: 0.0000073898818300\n",
      "Epoch: 6900/20000, Loss: 0.0000072518773777\n",
      "Epoch: 6910/20000, Loss: 0.0000071971953730\n",
      "Epoch: 6920/20000, Loss: 0.0000071674940045\n",
      "Epoch: 6930/20000, Loss: 0.0000071330755418\n",
      "Epoch: 6940/20000, Loss: 0.0000070934697760\n",
      "Epoch: 6950/20000, Loss: 0.0000070585128924\n",
      "Epoch: 6960/20000, Loss: 0.0000070245905590\n",
      "Epoch: 6970/20000, Loss: 0.0000069906809586\n",
      "Epoch: 6980/20000, Loss: 0.0000069572538450\n",
      "Epoch: 6990/20000, Loss: 0.0000069240663834\n",
      "Epoch: 7000/20000, Loss: 0.0000068911208473\n",
      "Epoch: 7010/20000, Loss: 0.0000068584208748\n",
      "Epoch: 7020/20000, Loss: 0.0000068259637374\n",
      "Epoch: 7030/20000, Loss: 0.0000067937116910\n",
      "Epoch: 7040/20000, Loss: 0.0000067617115747\n",
      "Epoch: 7050/20000, Loss: 0.0000067299220063\n",
      "Epoch: 7060/20000, Loss: 0.0000066983370743\n",
      "Epoch: 7070/20000, Loss: 0.0000066669617809\n",
      "Epoch: 7080/20000, Loss: 0.0000066358015829\n",
      "Epoch: 7090/20000, Loss: 0.0000066049278757\n",
      "Epoch: 7100/20000, Loss: 0.0000065889880716\n",
      "Epoch: 7110/20000, Loss: 0.0000106879570012\n",
      "Epoch: 7120/20000, Loss: 0.0000156066416821\n",
      "Epoch: 7130/20000, Loss: 0.0000093263679446\n",
      "Epoch: 7140/20000, Loss: 0.0000076560936577\n",
      "Epoch: 7150/20000, Loss: 0.0000068418162300\n",
      "Epoch: 7160/20000, Loss: 0.0000065341032496\n",
      "Epoch: 7170/20000, Loss: 0.0000064231758188\n",
      "Epoch: 7180/20000, Loss: 0.0000063683291955\n",
      "Epoch: 7190/20000, Loss: 0.0000063289462560\n",
      "Epoch: 7200/20000, Loss: 0.0000062951476139\n",
      "Epoch: 7210/20000, Loss: 0.0000062649664869\n",
      "Epoch: 7220/20000, Loss: 0.0000062368344516\n",
      "Epoch: 7230/20000, Loss: 0.0000062088461164\n",
      "Epoch: 7240/20000, Loss: 0.0000061809537328\n",
      "Epoch: 7250/20000, Loss: 0.0000061533787630\n",
      "Epoch: 7260/20000, Loss: 0.0000061259579525\n",
      "Epoch: 7270/20000, Loss: 0.0000060987254074\n",
      "Epoch: 7280/20000, Loss: 0.0000060716574808\n",
      "Epoch: 7290/20000, Loss: 0.0000060447687247\n",
      "Epoch: 7300/20000, Loss: 0.0000060180354922\n",
      "Epoch: 7310/20000, Loss: 0.0000059914664234\n",
      "Epoch: 7320/20000, Loss: 0.0000059650569710\n",
      "Epoch: 7330/20000, Loss: 0.0000059387984948\n",
      "Epoch: 7340/20000, Loss: 0.0000059126987253\n",
      "Epoch: 7350/20000, Loss: 0.0000058867472035\n",
      "Epoch: 7360/20000, Loss: 0.0000058609471125\n",
      "Epoch: 7370/20000, Loss: 0.0000058353380155\n",
      "Epoch: 7380/20000, Loss: 0.0000058145228650\n",
      "Epoch: 7390/20000, Loss: 0.0000066450711529\n",
      "Epoch: 7400/20000, Loss: 0.0000091060674094\n",
      "Epoch: 7410/20000, Loss: 0.0000090688927230\n",
      "Epoch: 7420/20000, Loss: 0.0000068724998528\n",
      "Epoch: 7430/20000, Loss: 0.0000060858310462\n",
      "Epoch: 7440/20000, Loss: 0.0000058220557548\n",
      "Epoch: 7450/20000, Loss: 0.0000057119727899\n",
      "Epoch: 7460/20000, Loss: 0.0000056472813412\n",
      "Epoch: 7470/20000, Loss: 0.0000056035687521\n",
      "Epoch: 7480/20000, Loss: 0.0000055750433603\n",
      "Epoch: 7490/20000, Loss: 0.0000055519535636\n",
      "Epoch: 7500/20000, Loss: 0.0000055274399529\n",
      "Epoch: 7510/20000, Loss: 0.0000055036125559\n",
      "Epoch: 7520/20000, Loss: 0.0000054800370890\n",
      "Epoch: 7530/20000, Loss: 0.0000054566216932\n",
      "Epoch: 7540/20000, Loss: 0.0000054333168009\n",
      "Epoch: 7550/20000, Loss: 0.0000054101369642\n",
      "Epoch: 7560/20000, Loss: 0.0000053870894590\n",
      "Epoch: 7570/20000, Loss: 0.0000053641556406\n",
      "Epoch: 7580/20000, Loss: 0.0000053413327805\n",
      "Epoch: 7590/20000, Loss: 0.0000053186054174\n",
      "Epoch: 7600/20000, Loss: 0.0000052959885579\n",
      "Epoch: 7610/20000, Loss: 0.0000052734767451\n",
      "Epoch: 7620/20000, Loss: 0.0000052510654314\n",
      "Epoch: 7630/20000, Loss: 0.0000052287809922\n",
      "Epoch: 7640/20000, Loss: 0.0000052078248700\n",
      "Epoch: 7650/20000, Loss: 0.0000053539902183\n",
      "Epoch: 7660/20000, Loss: 0.0000224624782277\n",
      "Epoch: 7670/20000, Loss: 0.0000052134387261\n",
      "Epoch: 7680/20000, Loss: 0.0000051570259529\n",
      "Epoch: 7690/20000, Loss: 0.0000051260726650\n",
      "Epoch: 7700/20000, Loss: 0.0000051051833907\n",
      "Epoch: 7710/20000, Loss: 0.0000050904254749\n",
      "Epoch: 7720/20000, Loss: 0.0000050684725466\n",
      "Epoch: 7730/20000, Loss: 0.0000050352778089\n",
      "Epoch: 7740/20000, Loss: 0.0000050035473578\n",
      "Epoch: 7750/20000, Loss: 0.0000049814593694\n",
      "Epoch: 7760/20000, Loss: 0.0000049605723689\n",
      "Epoch: 7770/20000, Loss: 0.0000049391301218\n",
      "Epoch: 7780/20000, Loss: 0.0000049183622650\n",
      "Epoch: 7790/20000, Loss: 0.0000048976035032\n",
      "Epoch: 7800/20000, Loss: 0.0000048769584282\n",
      "Epoch: 7810/20000, Loss: 0.0000048564165809\n",
      "Epoch: 7820/20000, Loss: 0.0000048359702305\n",
      "Epoch: 7830/20000, Loss: 0.0000048156016419\n",
      "Epoch: 7840/20000, Loss: 0.0000047953126341\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 7850/20000, Loss: 0.0000047751118473\n",
      "Epoch: 7860/20000, Loss: 0.0000047549779083\n",
      "Epoch: 7870/20000, Loss: 0.0000047349126362\n",
      "Epoch: 7880/20000, Loss: 0.0000047149324018\n",
      "Epoch: 7890/20000, Loss: 0.0000046950344768\n",
      "Epoch: 7900/20000, Loss: 0.0000046755931180\n",
      "Epoch: 7910/20000, Loss: 0.0000047177227316\n",
      "Epoch: 7920/20000, Loss: 0.0000184417167475\n",
      "Epoch: 7930/20000, Loss: 0.0000075547095548\n",
      "Epoch: 7940/20000, Loss: 0.0000054298820942\n",
      "Epoch: 7950/20000, Loss: 0.0000046725840548\n",
      "Epoch: 7960/20000, Loss: 0.0000045780602704\n",
      "Epoch: 7970/20000, Loss: 0.0000045539900384\n",
      "Epoch: 7980/20000, Loss: 0.0000045328588385\n",
      "Epoch: 7990/20000, Loss: 0.0000045145789045\n",
      "Epoch: 8000/20000, Loss: 0.0000044965254347\n",
      "Epoch: 8010/20000, Loss: 0.0000044766684368\n",
      "Epoch: 8020/20000, Loss: 0.0000044560711103\n",
      "Epoch: 8030/20000, Loss: 0.0000044367693590\n",
      "Epoch: 8040/20000, Loss: 0.0000044180305849\n",
      "Epoch: 8050/20000, Loss: 0.0000043992035899\n",
      "Epoch: 8060/20000, Loss: 0.0000043805589485\n",
      "Epoch: 8070/20000, Loss: 0.0000043619734242\n",
      "Epoch: 8080/20000, Loss: 0.0000043434652071\n",
      "Epoch: 8090/20000, Loss: 0.0000043250302042\n",
      "Epoch: 8100/20000, Loss: 0.0000043066597755\n",
      "Epoch: 8110/20000, Loss: 0.0000042883584683\n",
      "Epoch: 8120/20000, Loss: 0.0000042701162783\n",
      "Epoch: 8130/20000, Loss: 0.0000042519436647\n",
      "Epoch: 8140/20000, Loss: 0.0000042338219828\n",
      "Epoch: 8150/20000, Loss: 0.0000042157703319\n",
      "Epoch: 8160/20000, Loss: 0.0000041977823457\n",
      "Epoch: 8170/20000, Loss: 0.0000041798471102\n",
      "Epoch: 8180/20000, Loss: 0.0000041620869524\n",
      "Epoch: 8190/20000, Loss: 0.0000041598882490\n",
      "Epoch: 8200/20000, Loss: 0.0000082655069491\n",
      "Epoch: 8210/20000, Loss: 0.0000129499449031\n",
      "Epoch: 8220/20000, Loss: 0.0000069513871495\n",
      "Epoch: 8230/20000, Loss: 0.0000053307621783\n",
      "Epoch: 8240/20000, Loss: 0.0000044635344238\n",
      "Epoch: 8250/20000, Loss: 0.0000041667271944\n",
      "Epoch: 8260/20000, Loss: 0.0000040742215788\n",
      "Epoch: 8270/20000, Loss: 0.0000040334271034\n",
      "Epoch: 8280/20000, Loss: 0.0000040065306166\n",
      "Epoch: 8290/20000, Loss: 0.0000039843494051\n",
      "Epoch: 8300/20000, Loss: 0.0000039650167309\n",
      "Epoch: 8310/20000, Loss: 0.0000039476844904\n",
      "Epoch: 8320/20000, Loss: 0.0000039306723920\n",
      "Epoch: 8330/20000, Loss: 0.0000039135647967\n",
      "Epoch: 8340/20000, Loss: 0.0000038966645661\n",
      "Epoch: 8350/20000, Loss: 0.0000038798152673\n",
      "Epoch: 8360/20000, Loss: 0.0000038630473682\n",
      "Epoch: 8370/20000, Loss: 0.0000038463526835\n",
      "Epoch: 8380/20000, Loss: 0.0000038297075662\n",
      "Epoch: 8390/20000, Loss: 0.0000038131286146\n",
      "Epoch: 8400/20000, Loss: 0.0000037966001400\n",
      "Epoch: 8410/20000, Loss: 0.0000037801416966\n",
      "Epoch: 8420/20000, Loss: 0.0000037637310015\n",
      "Epoch: 8430/20000, Loss: 0.0000037473837438\n",
      "Epoch: 8440/20000, Loss: 0.0000037310890093\n",
      "Epoch: 8450/20000, Loss: 0.0000037148474803\n",
      "Epoch: 8460/20000, Loss: 0.0000036987273688\n",
      "Epoch: 8470/20000, Loss: 0.0000036877677303\n",
      "Epoch: 8480/20000, Loss: 0.0000045002234401\n",
      "Epoch: 8490/20000, Loss: 0.0000086596592155\n",
      "Epoch: 8500/20000, Loss: 0.0000075099546848\n",
      "Epoch: 8510/20000, Loss: 0.0000050203516366\n",
      "Epoch: 8520/20000, Loss: 0.0000041020502977\n",
      "Epoch: 8530/20000, Loss: 0.0000037627801248\n",
      "Epoch: 8540/20000, Loss: 0.0000036249514324\n",
      "Epoch: 8550/20000, Loss: 0.0000035702109926\n",
      "Epoch: 8560/20000, Loss: 0.0000035522407416\n",
      "Epoch: 8570/20000, Loss: 0.0000035379630390\n",
      "Epoch: 8580/20000, Loss: 0.0000035197167563\n",
      "Epoch: 8590/20000, Loss: 0.0000035041307456\n",
      "Epoch: 8600/20000, Loss: 0.0000034883780700\n",
      "Epoch: 8610/20000, Loss: 0.0000034730223888\n",
      "Epoch: 8620/20000, Loss: 0.0000034576555663\n",
      "Epoch: 8630/20000, Loss: 0.0000034424022033\n",
      "Epoch: 8640/20000, Loss: 0.0000034272143239\n",
      "Epoch: 8650/20000, Loss: 0.0000034120841974\n",
      "Epoch: 8660/20000, Loss: 0.0000033970140976\n",
      "Epoch: 8670/20000, Loss: 0.0000033820117551\n",
      "Epoch: 8680/20000, Loss: 0.0000033670626181\n",
      "Epoch: 8690/20000, Loss: 0.0000033521607747\n",
      "Epoch: 8700/20000, Loss: 0.0000033373144106\n",
      "Epoch: 8710/20000, Loss: 0.0000033225344396\n",
      "Epoch: 8720/20000, Loss: 0.0000033080370940\n",
      "Epoch: 8730/20000, Loss: 0.0000033214175801\n",
      "Epoch: 8740/20000, Loss: 0.0000091080000857\n",
      "Epoch: 8750/20000, Loss: 0.0000110736700663\n",
      "Epoch: 8760/20000, Loss: 0.0000054372039813\n",
      "Epoch: 8770/20000, Loss: 0.0000041031939872\n",
      "Epoch: 8780/20000, Loss: 0.0000035311798001\n",
      "Epoch: 8790/20000, Loss: 0.0000033018504837\n",
      "Epoch: 8800/20000, Loss: 0.0000032187754186\n",
      "Epoch: 8810/20000, Loss: 0.0000031904864954\n",
      "Epoch: 8820/20000, Loss: 0.0000031774939089\n",
      "Epoch: 8830/20000, Loss: 0.0000031624090298\n",
      "Epoch: 8840/20000, Loss: 0.0000031463350751\n",
      "Epoch: 8850/20000, Loss: 0.0000031322274481\n",
      "Epoch: 8860/20000, Loss: 0.0000031179552025\n",
      "Epoch: 8870/20000, Loss: 0.0000031040365229\n",
      "Epoch: 8880/20000, Loss: 0.0000030901217087\n",
      "Epoch: 8890/20000, Loss: 0.0000030763005725\n",
      "Epoch: 8900/20000, Loss: 0.0000030625628824\n",
      "Epoch: 8910/20000, Loss: 0.0000030488763514\n",
      "Epoch: 8920/20000, Loss: 0.0000030352457543\n",
      "Epoch: 8930/20000, Loss: 0.0000030216795039\n",
      "Epoch: 8940/20000, Loss: 0.0000030081694149\n",
      "Epoch: 8950/20000, Loss: 0.0000029947127587\n",
      "Epoch: 8960/20000, Loss: 0.0000029813077163\n",
      "Epoch: 8970/20000, Loss: 0.0000029679652016\n",
      "Epoch: 8980/20000, Loss: 0.0000029546922633\n",
      "Epoch: 8990/20000, Loss: 0.0000029440052458\n",
      "Epoch: 9000/20000, Loss: 0.0000034379761473\n",
      "Epoch: 9010/20000, Loss: 0.0000157705235324\n",
      "Epoch: 9020/20000, Loss: 0.0000079759038272\n",
      "Epoch: 9030/20000, Loss: 0.0000046099717110\n",
      "Epoch: 9040/20000, Loss: 0.0000033772887491\n",
      "Epoch: 9050/20000, Loss: 0.0000030248872918\n",
      "Epoch: 9060/20000, Loss: 0.0000029216068924\n",
      "Epoch: 9070/20000, Loss: 0.0000028719746297\n",
      "Epoch: 9080/20000, Loss: 0.0000028419333375\n",
      "Epoch: 9090/20000, Loss: 0.0000028241752261\n",
      "Epoch: 9100/20000, Loss: 0.0000028113413464\n",
      "Epoch: 9110/20000, Loss: 0.0000027981154744\n",
      "Epoch: 9120/20000, Loss: 0.0000027852604489\n",
      "Epoch: 9130/20000, Loss: 0.0000027727562610\n",
      "Epoch: 9140/20000, Loss: 0.0000027602739010\n",
      "Epoch: 9150/20000, Loss: 0.0000027478824904\n",
      "Epoch: 9160/20000, Loss: 0.0000027355729344\n",
      "Epoch: 9170/20000, Loss: 0.0000027233234050\n",
      "Epoch: 9180/20000, Loss: 0.0000027111352665\n",
      "Epoch: 9190/20000, Loss: 0.0000026990060178\n",
      "Epoch: 9200/20000, Loss: 0.0000026869374778\n",
      "Epoch: 9210/20000, Loss: 0.0000026749223707\n",
      "Epoch: 9220/20000, Loss: 0.0000026629620606\n",
      "Epoch: 9230/20000, Loss: 0.0000026510679163\n",
      "Epoch: 9240/20000, Loss: 0.0000026392133350\n",
      "Epoch: 9250/20000, Loss: 0.0000026274497031\n",
      "Epoch: 9260/20000, Loss: 0.0000026180105124\n",
      "Epoch: 9270/20000, Loss: 0.0000030234718906\n",
      "Epoch: 9280/20000, Loss: 0.0000169602080859\n",
      "Epoch: 9290/20000, Loss: 0.0000067848027356\n",
      "Epoch: 9300/20000, Loss: 0.0000041684052121\n",
      "Epoch: 9310/20000, Loss: 0.0000031262015909\n",
      "Epoch: 9320/20000, Loss: 0.0000027267642508\n",
      "Epoch: 9330/20000, Loss: 0.0000025936026304\n",
      "Epoch: 9340/20000, Loss: 0.0000025440510854\n",
      "Epoch: 9350/20000, Loss: 0.0000025241304229\n",
      "Epoch: 9360/20000, Loss: 0.0000025136091608\n",
      "Epoch: 9370/20000, Loss: 0.0000025017452572\n",
      "Epoch: 9380/20000, Loss: 0.0000024895905426\n",
      "Epoch: 9390/20000, Loss: 0.0000024785899768\n",
      "Epoch: 9400/20000, Loss: 0.0000024673979624\n",
      "Epoch: 9410/20000, Loss: 0.0000024564271826\n",
      "Epoch: 9420/20000, Loss: 0.0000024455146104\n",
      "Epoch: 9430/20000, Loss: 0.0000024346729788\n",
      "Epoch: 9440/20000, Loss: 0.0000024238952392\n",
      "Epoch: 9450/20000, Loss: 0.0000024131816190\n",
      "Epoch: 9460/20000, Loss: 0.0000024025293897\n",
      "Epoch: 9470/20000, Loss: 0.0000023919303658\n",
      "Epoch: 9480/20000, Loss: 0.0000023813834105\n",
      "Epoch: 9490/20000, Loss: 0.0000023708930712\n",
      "Epoch: 9500/20000, Loss: 0.0000023604518447\n",
      "Epoch: 9510/20000, Loss: 0.0000023500726911\n",
      "Epoch: 9520/20000, Loss: 0.0000023398940812\n",
      "Epoch: 9530/20000, Loss: 0.0000023479481115\n",
      "Epoch: 9540/20000, Loss: 0.0000062888866523\n",
      "Epoch: 9550/20000, Loss: 0.0000085375813796\n",
      "Epoch: 9560/20000, Loss: 0.0000036941837607\n",
      "Epoch: 9570/20000, Loss: 0.0000030318765312\n",
      "Epoch: 9580/20000, Loss: 0.0000026008210625\n",
      "Epoch: 9590/20000, Loss: 0.0000023775282898\n",
      "Epoch: 9600/20000, Loss: 0.0000022917431579\n",
      "Epoch: 9610/20000, Loss: 0.0000022627812086\n",
      "Epoch: 9620/20000, Loss: 0.0000022521737719\n",
      "Epoch: 9630/20000, Loss: 0.0000022424949293\n",
      "Epoch: 9640/20000, Loss: 0.0000022308622647\n",
      "Epoch: 9650/20000, Loss: 0.0000022207361781\n",
      "Epoch: 9660/20000, Loss: 0.0000022109284146\n",
      "Epoch: 9670/20000, Loss: 0.0000022012511636\n",
      "Epoch: 9680/20000, Loss: 0.0000021916773676\n",
      "Epoch: 9690/20000, Loss: 0.0000021821804239\n",
      "Epoch: 9700/20000, Loss: 0.0000021727539661\n",
      "Epoch: 9710/20000, Loss: 0.0000021633795768\n",
      "Epoch: 9720/20000, Loss: 0.0000021540636226\n",
      "Epoch: 9730/20000, Loss: 0.0000021448049665\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 9740/20000, Loss: 0.0000021355945137\n",
      "Epoch: 9750/20000, Loss: 0.0000021264386305\n",
      "Epoch: 9760/20000, Loss: 0.0000021173291316\n",
      "Epoch: 9770/20000, Loss: 0.0000021082735202\n",
      "Epoch: 9780/20000, Loss: 0.0000020993043108\n",
      "Epoch: 9790/20000, Loss: 0.0000020930140181\n",
      "Epoch: 9800/20000, Loss: 0.0000024386997666\n",
      "Epoch: 9810/20000, Loss: 0.0000178221816896\n",
      "Epoch: 9820/20000, Loss: 0.0000039140604713\n",
      "Epoch: 9830/20000, Loss: 0.0000024387134090\n",
      "Epoch: 9840/20000, Loss: 0.0000021549408302\n",
      "Epoch: 9850/20000, Loss: 0.0000020713860067\n",
      "Epoch: 9860/20000, Loss: 0.0000020598499759\n",
      "Epoch: 9870/20000, Loss: 0.0000020511463390\n",
      "Epoch: 9880/20000, Loss: 0.0000020281640900\n",
      "Epoch: 9890/20000, Loss: 0.0000020132260943\n",
      "Epoch: 9900/20000, Loss: 0.0000020056911580\n",
      "Epoch: 9910/20000, Loss: 0.0000019959575184\n",
      "Epoch: 9920/20000, Loss: 0.0000019875203634\n",
      "Epoch: 9930/20000, Loss: 0.0000019790443275\n",
      "Epoch: 9940/20000, Loss: 0.0000019706792500\n",
      "Epoch: 9950/20000, Loss: 0.0000019624164906\n",
      "Epoch: 9960/20000, Loss: 0.0000019542142127\n",
      "Epoch: 9970/20000, Loss: 0.0000019460590011\n",
      "Epoch: 9980/20000, Loss: 0.0000019379510832\n",
      "Epoch: 9990/20000, Loss: 0.0000019298875031\n",
      "Epoch: 10000/20000, Loss: 0.0000019218723537\n",
      "Epoch: 10010/20000, Loss: 0.0000019138901735\n",
      "Epoch: 10020/20000, Loss: 0.0000019059499436\n",
      "Epoch: 10030/20000, Loss: 0.0000018980873620\n",
      "Epoch: 10040/20000, Loss: 0.0000018931098111\n",
      "Epoch: 10050/20000, Loss: 0.0000023902982775\n",
      "Epoch: 10060/20000, Loss: 0.0000153398850671\n",
      "Epoch: 10070/20000, Loss: 0.0000065802987592\n",
      "Epoch: 10080/20000, Loss: 0.0000035424873204\n",
      "Epoch: 10090/20000, Loss: 0.0000024688090434\n",
      "Epoch: 10100/20000, Loss: 0.0000020723002763\n",
      "Epoch: 10110/20000, Loss: 0.0000019257815893\n",
      "Epoch: 10120/20000, Loss: 0.0000018641106863\n",
      "Epoch: 10130/20000, Loss: 0.0000018367891244\n",
      "Epoch: 10140/20000, Loss: 0.0000018261483774\n",
      "Epoch: 10150/20000, Loss: 0.0000018188420654\n",
      "Epoch: 10160/20000, Loss: 0.0000018102645072\n",
      "Epoch: 10170/20000, Loss: 0.0000018028325712\n",
      "Epoch: 10180/20000, Loss: 0.0000017954182567\n",
      "Epoch: 10190/20000, Loss: 0.0000017881476424\n",
      "Epoch: 10200/20000, Loss: 0.0000017809234123\n",
      "Epoch: 10210/20000, Loss: 0.0000017737642111\n",
      "Epoch: 10220/20000, Loss: 0.0000017666581016\n",
      "Epoch: 10230/20000, Loss: 0.0000017595964437\n",
      "Epoch: 10240/20000, Loss: 0.0000017525696876\n",
      "Epoch: 10250/20000, Loss: 0.0000017455871557\n",
      "Epoch: 10260/20000, Loss: 0.0000017386436184\n",
      "Epoch: 10270/20000, Loss: 0.0000017317405536\n",
      "Epoch: 10280/20000, Loss: 0.0000017248783024\n",
      "Epoch: 10290/20000, Loss: 0.0000017180663008\n",
      "Epoch: 10300/20000, Loss: 0.0000017124328906\n",
      "Epoch: 10310/20000, Loss: 0.0000018378664208\n",
      "Epoch: 10320/20000, Loss: 0.0000181833474926\n",
      "Epoch: 10330/20000, Loss: 0.0000027819892239\n",
      "Epoch: 10340/20000, Loss: 0.0000024013488655\n",
      "Epoch: 10350/20000, Loss: 0.0000019862247882\n",
      "Epoch: 10360/20000, Loss: 0.0000018348498543\n",
      "Epoch: 10370/20000, Loss: 0.0000017586280592\n",
      "Epoch: 10380/20000, Loss: 0.0000017016875518\n",
      "Epoch: 10390/20000, Loss: 0.0000016664647546\n",
      "Epoch: 10400/20000, Loss: 0.0000016564448515\n",
      "Epoch: 10410/20000, Loss: 0.0000016507401597\n",
      "Epoch: 10420/20000, Loss: 0.0000016425540252\n",
      "Epoch: 10430/20000, Loss: 0.0000016362802171\n",
      "Epoch: 10440/20000, Loss: 0.0000016297094589\n",
      "Epoch: 10450/20000, Loss: 0.0000016233731230\n",
      "Epoch: 10460/20000, Loss: 0.0000016171046582\n",
      "Epoch: 10470/20000, Loss: 0.0000016108735963\n",
      "Epoch: 10480/20000, Loss: 0.0000016046899418\n",
      "Epoch: 10490/20000, Loss: 0.0000015985439177\n",
      "Epoch: 10500/20000, Loss: 0.0000015924410945\n",
      "Epoch: 10510/20000, Loss: 0.0000015863633962\n",
      "Epoch: 10520/20000, Loss: 0.0000015803287852\n",
      "Epoch: 10530/20000, Loss: 0.0000015743205495\n",
      "Epoch: 10540/20000, Loss: 0.0000015683450556\n",
      "Epoch: 10550/20000, Loss: 0.0000015624074194\n",
      "Epoch: 10560/20000, Loss: 0.0000015573135670\n",
      "Epoch: 10570/20000, Loss: 0.0000017387674234\n",
      "Epoch: 10580/20000, Loss: 0.0000246515865001\n",
      "Epoch: 10590/20000, Loss: 0.0000059612825680\n",
      "Epoch: 10600/20000, Loss: 0.0000037249260458\n",
      "Epoch: 10610/20000, Loss: 0.0000019531048565\n",
      "Epoch: 10620/20000, Loss: 0.0000015537198124\n",
      "Epoch: 10630/20000, Loss: 0.0000015480787852\n",
      "Epoch: 10640/20000, Loss: 0.0000015402617919\n",
      "Epoch: 10650/20000, Loss: 0.0000015254368009\n",
      "Epoch: 10660/20000, Loss: 0.0000015143593828\n",
      "Epoch: 10670/20000, Loss: 0.0000015064598529\n",
      "Epoch: 10680/20000, Loss: 0.0000015001459133\n",
      "Epoch: 10690/20000, Loss: 0.0000014944620261\n",
      "Epoch: 10700/20000, Loss: 0.0000014888341866\n",
      "Epoch: 10710/20000, Loss: 0.0000014831897488\n",
      "Epoch: 10720/20000, Loss: 0.0000014776569515\n",
      "Epoch: 10730/20000, Loss: 0.0000014721855450\n",
      "Epoch: 10740/20000, Loss: 0.0000014667566575\n",
      "Epoch: 10750/20000, Loss: 0.0000014613667645\n",
      "Epoch: 10760/20000, Loss: 0.0000014560079080\n",
      "Epoch: 10770/20000, Loss: 0.0000014506854313\n",
      "Epoch: 10780/20000, Loss: 0.0000014453974018\n",
      "Epoch: 10790/20000, Loss: 0.0000014401300632\n",
      "Epoch: 10800/20000, Loss: 0.0000014348969444\n",
      "Epoch: 10810/20000, Loss: 0.0000014296875861\n",
      "Epoch: 10820/20000, Loss: 0.0000014245076727\n",
      "Epoch: 10830/20000, Loss: 0.0000014193474271\n",
      "Epoch: 10840/20000, Loss: 0.0000014142710825\n",
      "Epoch: 10850/20000, Loss: 0.0000014151696632\n",
      "Epoch: 10860/20000, Loss: 0.0000024964469958\n",
      "Epoch: 10870/20000, Loss: 0.0000135496766234\n",
      "Epoch: 10880/20000, Loss: 0.0000024946875783\n",
      "Epoch: 10890/20000, Loss: 0.0000023157281248\n",
      "Epoch: 10900/20000, Loss: 0.0000014753223923\n",
      "Epoch: 10910/20000, Loss: 0.0000015229102246\n",
      "Epoch: 10920/20000, Loss: 0.0000013872727322\n",
      "Epoch: 10930/20000, Loss: 0.0000013927605096\n",
      "Epoch: 10940/20000, Loss: 0.0000013759906778\n",
      "Epoch: 10950/20000, Loss: 0.0000013669764485\n",
      "Epoch: 10960/20000, Loss: 0.0000013614010186\n",
      "Epoch: 10970/20000, Loss: 0.0000013563944776\n",
      "Epoch: 10980/20000, Loss: 0.0000013515895034\n",
      "Epoch: 10990/20000, Loss: 0.0000013468101088\n",
      "Epoch: 11000/20000, Loss: 0.0000013419868310\n",
      "Epoch: 11010/20000, Loss: 0.0000013372759895\n",
      "Epoch: 11020/20000, Loss: 0.0000013326548469\n",
      "Epoch: 11030/20000, Loss: 0.0000013296260022\n",
      "Epoch: 11040/20000, Loss: 0.0000014157042187\n",
      "Epoch: 11050/20000, Loss: 0.0000094893748610\n",
      "Epoch: 11060/20000, Loss: 0.0000067086980380\n",
      "Epoch: 11070/20000, Loss: 0.0000019703927592\n",
      "Epoch: 11080/20000, Loss: 0.0000013282127611\n",
      "Epoch: 11090/20000, Loss: 0.0000014780761148\n",
      "Epoch: 11100/20000, Loss: 0.0000013744858052\n",
      "Epoch: 11110/20000, Loss: 0.0000013017950096\n",
      "Epoch: 11120/20000, Loss: 0.0000013062519884\n",
      "Epoch: 11130/20000, Loss: 0.0000012909525822\n",
      "Epoch: 11140/20000, Loss: 0.0000012858506580\n",
      "Epoch: 11150/20000, Loss: 0.0000012813246713\n",
      "Epoch: 11160/20000, Loss: 0.0000012764139683\n",
      "Epoch: 11170/20000, Loss: 0.0000012717620166\n",
      "Epoch: 11180/20000, Loss: 0.0000012672509229\n",
      "Epoch: 11190/20000, Loss: 0.0000012627959904\n",
      "Epoch: 11200/20000, Loss: 0.0000012583790294\n",
      "Epoch: 11210/20000, Loss: 0.0000012540106127\n",
      "Epoch: 11220/20000, Loss: 0.0000012496549289\n",
      "Epoch: 11230/20000, Loss: 0.0000012453652971\n",
      "Epoch: 11240/20000, Loss: 0.0000012423846556\n",
      "Epoch: 11250/20000, Loss: 0.0000013403778212\n",
      "Epoch: 11260/20000, Loss: 0.0000125863471112\n",
      "Epoch: 11270/20000, Loss: 0.0000058592345340\n",
      "Epoch: 11280/20000, Loss: 0.0000031984202451\n",
      "Epoch: 11290/20000, Loss: 0.0000018332980289\n",
      "Epoch: 11300/20000, Loss: 0.0000013314264606\n",
      "Epoch: 11310/20000, Loss: 0.0000012233383586\n",
      "Epoch: 11320/20000, Loss: 0.0000012385531818\n",
      "Epoch: 11330/20000, Loss: 0.0000012224508055\n",
      "Epoch: 11340/20000, Loss: 0.0000012081800378\n",
      "Epoch: 11350/20000, Loss: 0.0000012049410998\n",
      "Epoch: 11360/20000, Loss: 0.0000011993209910\n",
      "Epoch: 11370/20000, Loss: 0.0000011948743577\n",
      "Epoch: 11380/20000, Loss: 0.0000011907203543\n",
      "Epoch: 11390/20000, Loss: 0.0000011865299712\n",
      "Epoch: 11400/20000, Loss: 0.0000011823899513\n",
      "Epoch: 11410/20000, Loss: 0.0000011782930187\n",
      "Epoch: 11420/20000, Loss: 0.0000011742309880\n",
      "Epoch: 11430/20000, Loss: 0.0000011701876019\n",
      "Epoch: 11440/20000, Loss: 0.0000011661677490\n",
      "Epoch: 11450/20000, Loss: 0.0000011621643807\n",
      "Epoch: 11460/20000, Loss: 0.0000011581984154\n",
      "Epoch: 11470/20000, Loss: 0.0000011548180510\n",
      "Epoch: 11480/20000, Loss: 0.0000012014775166\n",
      "Epoch: 11490/20000, Loss: 0.0000088415290520\n",
      "Epoch: 11500/20000, Loss: 0.0000084026396507\n",
      "Epoch: 11510/20000, Loss: 0.0000033048379464\n",
      "Epoch: 11520/20000, Loss: 0.0000018830281761\n",
      "Epoch: 11530/20000, Loss: 0.0000013710234725\n",
      "Epoch: 11540/20000, Loss: 0.0000011822660326\n",
      "Epoch: 11550/20000, Loss: 0.0000011348572571\n",
      "Epoch: 11560/20000, Loss: 0.0000011353507716\n",
      "Epoch: 11570/20000, Loss: 0.0000011305691032\n",
      "Epoch: 11580/20000, Loss: 0.0000011210855746\n",
      "Epoch: 11590/20000, Loss: 0.0000011175418422\n",
      "Epoch: 11600/20000, Loss: 0.0000011129471886\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 11610/20000, Loss: 0.0000011091244687\n",
      "Epoch: 11620/20000, Loss: 0.0000011051839692\n",
      "Epoch: 11630/20000, Loss: 0.0000011013481753\n",
      "Epoch: 11640/20000, Loss: 0.0000010975554687\n",
      "Epoch: 11650/20000, Loss: 0.0000010937944808\n",
      "Epoch: 11660/20000, Loss: 0.0000010900533880\n",
      "Epoch: 11670/20000, Loss: 0.0000010863399211\n",
      "Epoch: 11680/20000, Loss: 0.0000010826311154\n",
      "Epoch: 11690/20000, Loss: 0.0000010789510725\n",
      "Epoch: 11700/20000, Loss: 0.0000010752874005\n",
      "Epoch: 11710/20000, Loss: 0.0000010720825685\n",
      "Epoch: 11720/20000, Loss: 0.0000011600939160\n",
      "Epoch: 11730/20000, Loss: 0.0000031834417769\n",
      "Epoch: 11740/20000, Loss: 0.0000089577551989\n",
      "Epoch: 11750/20000, Loss: 0.0000014039127336\n",
      "Epoch: 11760/20000, Loss: 0.0000017570124555\n",
      "Epoch: 11770/20000, Loss: 0.0000011379803482\n",
      "Epoch: 11780/20000, Loss: 0.0000011279790897\n",
      "Epoch: 11790/20000, Loss: 0.0000010872663552\n",
      "Epoch: 11800/20000, Loss: 0.0000010516135944\n",
      "Epoch: 11810/20000, Loss: 0.0000010429333770\n",
      "Epoch: 11820/20000, Loss: 0.0000010388328064\n",
      "Epoch: 11830/20000, Loss: 0.0000010353088555\n",
      "Epoch: 11840/20000, Loss: 0.0000010316443877\n",
      "Epoch: 11850/20000, Loss: 0.0000010277484535\n",
      "Epoch: 11860/20000, Loss: 0.0000010243918496\n",
      "Epoch: 11870/20000, Loss: 0.0000010212206689\n",
      "Epoch: 11880/20000, Loss: 0.0000010224478046\n",
      "Epoch: 11890/20000, Loss: 0.0000012263092231\n",
      "Epoch: 11900/20000, Loss: 0.0000109767388494\n",
      "Epoch: 11910/20000, Loss: 0.0000041868984226\n",
      "Epoch: 11920/20000, Loss: 0.0000017454918861\n",
      "Epoch: 11930/20000, Loss: 0.0000010646481314\n",
      "Epoch: 11940/20000, Loss: 0.0000011789935570\n",
      "Epoch: 11950/20000, Loss: 0.0000010024463108\n",
      "Epoch: 11960/20000, Loss: 0.0000010184320445\n",
      "Epoch: 11970/20000, Loss: 0.0000009994015500\n",
      "Epoch: 11980/20000, Loss: 0.0000009902578313\n",
      "Epoch: 11990/20000, Loss: 0.0000009867198969\n",
      "Epoch: 12000/20000, Loss: 0.0000009832810974\n",
      "Epoch: 12010/20000, Loss: 0.0000009798584415\n",
      "Epoch: 12020/20000, Loss: 0.0000009765626601\n",
      "Epoch: 12030/20000, Loss: 0.0000009732457329\n",
      "Epoch: 12040/20000, Loss: 0.0000009699358543\n",
      "Epoch: 12050/20000, Loss: 0.0000009666598544\n",
      "Epoch: 12060/20000, Loss: 0.0000009634223943\n",
      "Epoch: 12070/20000, Loss: 0.0000009606998219\n",
      "Epoch: 12080/20000, Loss: 0.0000009996509789\n",
      "Epoch: 12090/20000, Loss: 0.0000070378964665\n",
      "Epoch: 12100/20000, Loss: 0.0000083315453594\n",
      "Epoch: 12110/20000, Loss: 0.0000026375778361\n",
      "Epoch: 12120/20000, Loss: 0.0000014598871303\n",
      "Epoch: 12130/20000, Loss: 0.0000010796975403\n",
      "Epoch: 12140/20000, Loss: 0.0000009684627003\n",
      "Epoch: 12150/20000, Loss: 0.0000009523475910\n",
      "Epoch: 12160/20000, Loss: 0.0000009515205193\n",
      "Epoch: 12170/20000, Loss: 0.0000009415062436\n",
      "Epoch: 12180/20000, Loss: 0.0000009342436442\n",
      "Epoch: 12190/20000, Loss: 0.0000009311842177\n",
      "Epoch: 12200/20000, Loss: 0.0000009273013006\n",
      "Epoch: 12210/20000, Loss: 0.0000009241013004\n",
      "Epoch: 12220/20000, Loss: 0.0000009208588949\n",
      "Epoch: 12230/20000, Loss: 0.0000009176756635\n",
      "Epoch: 12240/20000, Loss: 0.0000009145460353\n",
      "Epoch: 12250/20000, Loss: 0.0000009114483532\n",
      "Epoch: 12260/20000, Loss: 0.0000009083623240\n",
      "Epoch: 12270/20000, Loss: 0.0000009052979522\n",
      "Epoch: 12280/20000, Loss: 0.0000009022388099\n",
      "Epoch: 12290/20000, Loss: 0.0000008992048492\n",
      "Epoch: 12300/20000, Loss: 0.0000008961794151\n",
      "Epoch: 12310/20000, Loss: 0.0000008931683624\n",
      "Epoch: 12320/20000, Loss: 0.0000008901844240\n",
      "Epoch: 12330/20000, Loss: 0.0000008887286640\n",
      "Epoch: 12340/20000, Loss: 0.0000011577874375\n",
      "Epoch: 12350/20000, Loss: 0.0000218008790398\n",
      "Epoch: 12360/20000, Loss: 0.0000060444785959\n",
      "Epoch: 12370/20000, Loss: 0.0000026912584872\n",
      "Epoch: 12380/20000, Loss: 0.0000011173020766\n",
      "Epoch: 12390/20000, Loss: 0.0000009052660062\n",
      "Epoch: 12400/20000, Loss: 0.0000009364135281\n",
      "Epoch: 12410/20000, Loss: 0.0000008988961326\n",
      "Epoch: 12420/20000, Loss: 0.0000008809969927\n",
      "Epoch: 12430/20000, Loss: 0.0000008723616247\n",
      "Epoch: 12440/20000, Loss: 0.0000008665618338\n",
      "Epoch: 12450/20000, Loss: 0.0000008627067700\n",
      "Epoch: 12460/20000, Loss: 0.0000008596261409\n",
      "Epoch: 12470/20000, Loss: 0.0000008565901339\n",
      "Epoch: 12480/20000, Loss: 0.0000008535560596\n",
      "Epoch: 12490/20000, Loss: 0.0000008506325457\n",
      "Epoch: 12500/20000, Loss: 0.0000008477362599\n",
      "Epoch: 12510/20000, Loss: 0.0000008448654967\n",
      "Epoch: 12520/20000, Loss: 0.0000008420192898\n",
      "Epoch: 12530/20000, Loss: 0.0000008391943993\n",
      "Epoch: 12540/20000, Loss: 0.0000008363869597\n",
      "Epoch: 12550/20000, Loss: 0.0000008335906045\n",
      "Epoch: 12560/20000, Loss: 0.0000008308121551\n",
      "Epoch: 12570/20000, Loss: 0.0000008280443353\n",
      "Epoch: 12580/20000, Loss: 0.0000008252897032\n",
      "Epoch: 12590/20000, Loss: 0.0000008225434840\n",
      "Epoch: 12600/20000, Loss: 0.0000008198072123\n",
      "Epoch: 12610/20000, Loss: 0.0000008170806609\n",
      "Epoch: 12620/20000, Loss: 0.0000008143701393\n",
      "Epoch: 12630/20000, Loss: 0.0000008121475616\n",
      "Epoch: 12640/20000, Loss: 0.0000008719919151\n",
      "Epoch: 12650/20000, Loss: 0.0000124732478071\n",
      "Epoch: 12660/20000, Loss: 0.0000050421303968\n",
      "Epoch: 12670/20000, Loss: 0.0000019177257400\n",
      "Epoch: 12680/20000, Loss: 0.0000009793075151\n",
      "Epoch: 12690/20000, Loss: 0.0000008304962194\n",
      "Epoch: 12700/20000, Loss: 0.0000008105320717\n",
      "Epoch: 12710/20000, Loss: 0.0000008045164464\n",
      "Epoch: 12720/20000, Loss: 0.0000008019350730\n",
      "Epoch: 12730/20000, Loss: 0.0000007980092391\n",
      "Epoch: 12740/20000, Loss: 0.0000007924756460\n",
      "Epoch: 12750/20000, Loss: 0.0000007880035469\n",
      "Epoch: 12760/20000, Loss: 0.0000007852338513\n",
      "Epoch: 12770/20000, Loss: 0.0000007824688169\n",
      "Epoch: 12780/20000, Loss: 0.0000007797329431\n",
      "Epoch: 12790/20000, Loss: 0.0000007770815955\n",
      "Epoch: 12800/20000, Loss: 0.0000007744636150\n",
      "Epoch: 12810/20000, Loss: 0.0000007718649044\n",
      "Epoch: 12820/20000, Loss: 0.0000007692860891\n",
      "Epoch: 12830/20000, Loss: 0.0000007667212572\n",
      "Epoch: 12840/20000, Loss: 0.0000007641706361\n",
      "Epoch: 12850/20000, Loss: 0.0000007616346238\n",
      "Epoch: 12860/20000, Loss: 0.0000007591077065\n",
      "Epoch: 12870/20000, Loss: 0.0000007567055036\n",
      "Epoch: 12880/20000, Loss: 0.0000007652957379\n",
      "Epoch: 12890/20000, Loss: 0.0000026335255825\n",
      "Epoch: 12900/20000, Loss: 0.0000045516089813\n",
      "Epoch: 12910/20000, Loss: 0.0000017440714828\n",
      "Epoch: 12920/20000, Loss: 0.0000013383813666\n",
      "Epoch: 12930/20000, Loss: 0.0000008132526546\n",
      "Epoch: 12940/20000, Loss: 0.0000008263145901\n",
      "Epoch: 12950/20000, Loss: 0.0000007519753922\n",
      "Epoch: 12960/20000, Loss: 0.0000007396134833\n",
      "Epoch: 12970/20000, Loss: 0.0000007374020470\n",
      "Epoch: 12980/20000, Loss: 0.0000007344672781\n",
      "Epoch: 12990/20000, Loss: 0.0000007316991173\n",
      "Epoch: 13000/20000, Loss: 0.0000007293035651\n",
      "Epoch: 13010/20000, Loss: 0.0000007267042861\n",
      "Epoch: 13020/20000, Loss: 0.0000007243367577\n",
      "Epoch: 13030/20000, Loss: 0.0000007220095881\n",
      "Epoch: 13040/20000, Loss: 0.0000007212963737\n",
      "Epoch: 13050/20000, Loss: 0.0000007866145779\n",
      "Epoch: 13060/20000, Loss: 0.0000056903249970\n",
      "Epoch: 13070/20000, Loss: 0.0000041577027332\n",
      "Epoch: 13080/20000, Loss: 0.0000008526432111\n",
      "Epoch: 13090/20000, Loss: 0.0000012936953908\n",
      "Epoch: 13100/20000, Loss: 0.0000008354244301\n",
      "Epoch: 13110/20000, Loss: 0.0000007331469192\n",
      "Epoch: 13120/20000, Loss: 0.0000007312872299\n",
      "Epoch: 13130/20000, Loss: 0.0000007107173587\n",
      "Epoch: 13140/20000, Loss: 0.0000007021450301\n",
      "Epoch: 13150/20000, Loss: 0.0000007005455132\n",
      "Epoch: 13160/20000, Loss: 0.0000006975800488\n",
      "Epoch: 13170/20000, Loss: 0.0000006948155260\n",
      "Epoch: 13180/20000, Loss: 0.0000006922974194\n",
      "Epoch: 13190/20000, Loss: 0.0000006898902143\n",
      "Epoch: 13200/20000, Loss: 0.0000006875800977\n",
      "Epoch: 13210/20000, Loss: 0.0000006852884553\n",
      "Epoch: 13220/20000, Loss: 0.0000006830293273\n",
      "Epoch: 13230/20000, Loss: 0.0000006809018487\n",
      "Epoch: 13240/20000, Loss: 0.0000006825038668\n",
      "Epoch: 13250/20000, Loss: 0.0000009404859611\n",
      "Epoch: 13260/20000, Loss: 0.0000139278536153\n",
      "Epoch: 13270/20000, Loss: 0.0000012083593219\n",
      "Epoch: 13280/20000, Loss: 0.0000018243578097\n",
      "Epoch: 13290/20000, Loss: 0.0000011767103842\n",
      "Epoch: 13300/20000, Loss: 0.0000007172778282\n",
      "Epoch: 13310/20000, Loss: 0.0000006920440114\n",
      "Epoch: 13320/20000, Loss: 0.0000006907087027\n",
      "Epoch: 13330/20000, Loss: 0.0000006661401812\n",
      "Epoch: 13340/20000, Loss: 0.0000006652564934\n",
      "Epoch: 13350/20000, Loss: 0.0000006613334449\n",
      "Epoch: 13360/20000, Loss: 0.0000006580568765\n",
      "Epoch: 13370/20000, Loss: 0.0000006557458505\n",
      "Epoch: 13380/20000, Loss: 0.0000006535082093\n",
      "Epoch: 13390/20000, Loss: 0.0000006512906339\n",
      "Epoch: 13400/20000, Loss: 0.0000006491023896\n",
      "Epoch: 13410/20000, Loss: 0.0000006469391565\n",
      "Epoch: 13420/20000, Loss: 0.0000006447784813\n",
      "Epoch: 13430/20000, Loss: 0.0000006426612913\n",
      "Epoch: 13440/20000, Loss: 0.0000006417883469\n",
      "Epoch: 13450/20000, Loss: 0.0000007993524491\n",
      "Epoch: 13460/20000, Loss: 0.0000016570176058\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 13470/20000, Loss: 0.0000061715572883\n",
      "Epoch: 13480/20000, Loss: 0.0000021903053948\n",
      "Epoch: 13490/20000, Loss: 0.0000016286486471\n",
      "Epoch: 13500/20000, Loss: 0.0000008088595678\n",
      "Epoch: 13510/20000, Loss: 0.0000006494562399\n",
      "Epoch: 13520/20000, Loss: 0.0000006363416674\n",
      "Epoch: 13530/20000, Loss: 0.0000006280687899\n",
      "Epoch: 13540/20000, Loss: 0.0000006246320368\n",
      "Epoch: 13550/20000, Loss: 0.0000006244940778\n",
      "Epoch: 13560/20000, Loss: 0.0000006198869755\n",
      "Epoch: 13570/20000, Loss: 0.0000006188399766\n",
      "Epoch: 13580/20000, Loss: 0.0000006192230444\n",
      "Epoch: 13590/20000, Loss: 0.0000006635951308\n",
      "Epoch: 13600/20000, Loss: 0.0000024322880563\n",
      "Epoch: 13610/20000, Loss: 0.0000013931065723\n",
      "Epoch: 13620/20000, Loss: 0.0000013680922848\n",
      "Epoch: 13630/20000, Loss: 0.0000010657203120\n",
      "Epoch: 13640/20000, Loss: 0.0000006159280019\n",
      "Epoch: 13650/20000, Loss: 0.0000006734824183\n",
      "Epoch: 13660/20000, Loss: 0.0000006344718599\n",
      "Epoch: 13670/20000, Loss: 0.0000006107711670\n",
      "Epoch: 13680/20000, Loss: 0.0000006033688464\n",
      "Epoch: 13690/20000, Loss: 0.0000005997075050\n",
      "Epoch: 13700/20000, Loss: 0.0000005962592695\n",
      "Epoch: 13710/20000, Loss: 0.0000005939106131\n",
      "Epoch: 13720/20000, Loss: 0.0000005919312684\n",
      "Epoch: 13730/20000, Loss: 0.0000005903135616\n",
      "Epoch: 13740/20000, Loss: 0.0000005926115705\n",
      "Epoch: 13750/20000, Loss: 0.0000007540785987\n",
      "Epoch: 13760/20000, Loss: 0.0000088946426331\n",
      "Epoch: 13770/20000, Loss: 0.0000046424588618\n",
      "Epoch: 13780/20000, Loss: 0.0000008064604913\n",
      "Epoch: 13790/20000, Loss: 0.0000008577930544\n",
      "Epoch: 13800/20000, Loss: 0.0000006993829516\n",
      "Epoch: 13810/20000, Loss: 0.0000006091013347\n",
      "Epoch: 13820/20000, Loss: 0.0000005856817324\n",
      "Epoch: 13830/20000, Loss: 0.0000005856938969\n",
      "Epoch: 13840/20000, Loss: 0.0000005765475066\n",
      "Epoch: 13850/20000, Loss: 0.0000005726875543\n",
      "Epoch: 13860/20000, Loss: 0.0000005705002195\n",
      "Epoch: 13870/20000, Loss: 0.0000005685839142\n",
      "Epoch: 13880/20000, Loss: 0.0000005666742595\n",
      "Epoch: 13890/20000, Loss: 0.0000005647232797\n",
      "Epoch: 13900/20000, Loss: 0.0000005629037219\n",
      "Epoch: 13910/20000, Loss: 0.0000005610900757\n",
      "Epoch: 13920/20000, Loss: 0.0000005595182984\n",
      "Epoch: 13930/20000, Loss: 0.0000005667285450\n",
      "Epoch: 13940/20000, Loss: 0.0000014473832834\n",
      "Epoch: 13950/20000, Loss: 0.0000070090823101\n",
      "Epoch: 13960/20000, Loss: 0.0000026878324206\n",
      "Epoch: 13970/20000, Loss: 0.0000013112893384\n",
      "Epoch: 13980/20000, Loss: 0.0000006176165357\n",
      "Epoch: 13990/20000, Loss: 0.0000005660150464\n",
      "Epoch: 14000/20000, Loss: 0.0000005717624276\n",
      "Epoch: 14010/20000, Loss: 0.0000005561794296\n",
      "Epoch: 14020/20000, Loss: 0.0000005471868576\n",
      "Epoch: 14030/20000, Loss: 0.0000005460356078\n",
      "Epoch: 14040/20000, Loss: 0.0000005421945275\n",
      "Epoch: 14050/20000, Loss: 0.0000005413437520\n",
      "Epoch: 14060/20000, Loss: 0.0000005435213097\n",
      "Epoch: 14070/20000, Loss: 0.0000006269840469\n",
      "Epoch: 14080/20000, Loss: 0.0000041426865209\n",
      "Epoch: 14090/20000, Loss: 0.0000011001574194\n",
      "Epoch: 14100/20000, Loss: 0.0000019201024770\n",
      "Epoch: 14110/20000, Loss: 0.0000005432720513\n",
      "Epoch: 14120/20000, Loss: 0.0000006825757737\n",
      "Epoch: 14130/20000, Loss: 0.0000005849909144\n",
      "Epoch: 14140/20000, Loss: 0.0000005335583069\n",
      "Epoch: 14150/20000, Loss: 0.0000005277170203\n",
      "Epoch: 14160/20000, Loss: 0.0000005258794431\n",
      "Epoch: 14170/20000, Loss: 0.0000005244184536\n",
      "Epoch: 14180/20000, Loss: 0.0000005230465376\n",
      "Epoch: 14190/20000, Loss: 0.0000005208054290\n",
      "Epoch: 14200/20000, Loss: 0.0000005193246579\n",
      "Epoch: 14210/20000, Loss: 0.0000005178753213\n",
      "Epoch: 14220/20000, Loss: 0.0000005199822795\n",
      "Epoch: 14230/20000, Loss: 0.0000006595238347\n",
      "Epoch: 14240/20000, Loss: 0.0000082784335973\n",
      "Epoch: 14250/20000, Loss: 0.0000044388852984\n",
      "Epoch: 14260/20000, Loss: 0.0000005737024367\n",
      "Epoch: 14270/20000, Loss: 0.0000009220537436\n",
      "Epoch: 14280/20000, Loss: 0.0000005659701969\n",
      "Epoch: 14290/20000, Loss: 0.0000005654311508\n",
      "Epoch: 14300/20000, Loss: 0.0000005089970045\n",
      "Epoch: 14310/20000, Loss: 0.0000005132145589\n",
      "Epoch: 14320/20000, Loss: 0.0000005084466466\n",
      "Epoch: 14330/20000, Loss: 0.0000005043877991\n",
      "Epoch: 14340/20000, Loss: 0.0000005020120852\n",
      "Epoch: 14350/20000, Loss: 0.0000005001161867\n",
      "Epoch: 14360/20000, Loss: 0.0000004983329518\n",
      "Epoch: 14370/20000, Loss: 0.0000004967649829\n",
      "Epoch: 14380/20000, Loss: 0.0000004951830306\n",
      "Epoch: 14390/20000, Loss: 0.0000004936600249\n",
      "Epoch: 14400/20000, Loss: 0.0000004923793426\n",
      "Epoch: 14410/20000, Loss: 0.0000005009930533\n",
      "Epoch: 14420/20000, Loss: 0.0000014442191514\n",
      "Epoch: 14430/20000, Loss: 0.0000052730856623\n",
      "Epoch: 14440/20000, Loss: 0.0000035001069136\n",
      "Epoch: 14450/20000, Loss: 0.0000010226788163\n",
      "Epoch: 14460/20000, Loss: 0.0000005043478950\n",
      "Epoch: 14470/20000, Loss: 0.0000005428495342\n",
      "Epoch: 14480/20000, Loss: 0.0000005398396183\n",
      "Epoch: 14490/20000, Loss: 0.0000004869710892\n",
      "Epoch: 14500/20000, Loss: 0.0000004897007102\n",
      "Epoch: 14510/20000, Loss: 0.0000004819706874\n",
      "Epoch: 14520/20000, Loss: 0.0000004811039389\n",
      "Epoch: 14530/20000, Loss: 0.0000004787648322\n",
      "Epoch: 14540/20000, Loss: 0.0000004770030841\n",
      "Epoch: 14550/20000, Loss: 0.0000004754676581\n",
      "Epoch: 14560/20000, Loss: 0.0000004739618760\n",
      "Epoch: 14570/20000, Loss: 0.0000004724779501\n",
      "Epoch: 14580/20000, Loss: 0.0000004710119583\n",
      "Epoch: 14590/20000, Loss: 0.0000004695537541\n",
      "Epoch: 14600/20000, Loss: 0.0000004681262169\n",
      "Epoch: 14610/20000, Loss: 0.0000004683101622\n",
      "Epoch: 14620/20000, Loss: 0.0000007558680863\n",
      "Epoch: 14630/20000, Loss: 0.0000054079987422\n",
      "Epoch: 14640/20000, Loss: 0.0000022250521852\n",
      "Epoch: 14650/20000, Loss: 0.0000011030928135\n",
      "Epoch: 14660/20000, Loss: 0.0000005492714195\n",
      "Epoch: 14670/20000, Loss: 0.0000004915522709\n",
      "Epoch: 14680/20000, Loss: 0.0000004781911116\n",
      "Epoch: 14690/20000, Loss: 0.0000004651140841\n",
      "Epoch: 14700/20000, Loss: 0.0000004602739523\n",
      "Epoch: 14710/20000, Loss: 0.0000004592751282\n",
      "Epoch: 14720/20000, Loss: 0.0000004549605137\n",
      "Epoch: 14730/20000, Loss: 0.0000004543409204\n",
      "Epoch: 14740/20000, Loss: 0.0000004558991691\n",
      "Epoch: 14750/20000, Loss: 0.0000005113367934\n",
      "Epoch: 14760/20000, Loss: 0.0000027900312034\n",
      "Epoch: 14770/20000, Loss: 0.0000005100146723\n",
      "Epoch: 14780/20000, Loss: 0.0000016130388758\n",
      "Epoch: 14790/20000, Loss: 0.0000006913913353\n",
      "Epoch: 14800/20000, Loss: 0.0000004871492365\n",
      "Epoch: 14810/20000, Loss: 0.0000005196463349\n",
      "Epoch: 14820/20000, Loss: 0.0000004686992838\n",
      "Epoch: 14830/20000, Loss: 0.0000004497560440\n",
      "Epoch: 14840/20000, Loss: 0.0000004449668154\n",
      "Epoch: 14850/20000, Loss: 0.0000004427193687\n",
      "Epoch: 14860/20000, Loss: 0.0000004402723448\n",
      "Epoch: 14870/20000, Loss: 0.0000004384981480\n",
      "Epoch: 14880/20000, Loss: 0.0000004372068645\n",
      "Epoch: 14890/20000, Loss: 0.0000004362582331\n",
      "Epoch: 14900/20000, Loss: 0.0000004397174393\n",
      "Epoch: 14910/20000, Loss: 0.0000006278310138\n",
      "Epoch: 14920/20000, Loss: 0.0000095627692644\n",
      "Epoch: 14930/20000, Loss: 0.0000037322442950\n",
      "Epoch: 14940/20000, Loss: 0.0000007960247785\n",
      "Epoch: 14950/20000, Loss: 0.0000006367360470\n",
      "Epoch: 14960/20000, Loss: 0.0000005500159546\n",
      "Epoch: 14970/20000, Loss: 0.0000004545328807\n",
      "Epoch: 14980/20000, Loss: 0.0000004359701791\n",
      "Epoch: 14990/20000, Loss: 0.0000004365504935\n",
      "Epoch: 15000/20000, Loss: 0.0000004290694733\n",
      "Epoch: 15010/20000, Loss: 0.0000004258220088\n",
      "Epoch: 15020/20000, Loss: 0.0000004241748286\n",
      "Epoch: 15030/20000, Loss: 0.0000004228479895\n",
      "Epoch: 15040/20000, Loss: 0.0000004215096681\n",
      "Epoch: 15050/20000, Loss: 0.0000004202008199\n",
      "Epoch: 15060/20000, Loss: 0.0000004190131335\n",
      "Epoch: 15070/20000, Loss: 0.0000004181430597\n",
      "Epoch: 15080/20000, Loss: 0.0000004333372488\n",
      "Epoch: 15090/20000, Loss: 0.0000017597940314\n",
      "Epoch: 15100/20000, Loss: 0.0000083058394011\n",
      "Epoch: 15110/20000, Loss: 0.0000025387289497\n",
      "Epoch: 15120/20000, Loss: 0.0000004904402431\n",
      "Epoch: 15130/20000, Loss: 0.0000005720555123\n",
      "Epoch: 15140/20000, Loss: 0.0000005098749511\n",
      "Epoch: 15150/20000, Loss: 0.0000004353221073\n",
      "Epoch: 15160/20000, Loss: 0.0000004170875343\n",
      "Epoch: 15170/20000, Loss: 0.0000004136095413\n",
      "Epoch: 15180/20000, Loss: 0.0000004111976466\n",
      "Epoch: 15190/20000, Loss: 0.0000004076723599\n",
      "Epoch: 15200/20000, Loss: 0.0000004063724930\n",
      "Epoch: 15210/20000, Loss: 0.0000004048953883\n",
      "Epoch: 15220/20000, Loss: 0.0000004037092651\n",
      "Epoch: 15230/20000, Loss: 0.0000004026042859\n",
      "Epoch: 15240/20000, Loss: 0.0000004026455542\n",
      "Epoch: 15250/20000, Loss: 0.0000005422840559\n",
      "Epoch: 15260/20000, Loss: 0.0000167061389220\n",
      "Epoch: 15270/20000, Loss: 0.0000006311780112\n",
      "Epoch: 15280/20000, Loss: 0.0000005950003015\n",
      "Epoch: 15290/20000, Loss: 0.0000004761601815\n",
      "Epoch: 15300/20000, Loss: 0.0000004361984622\n",
      "Epoch: 15310/20000, Loss: 0.0000004295856684\n",
      "Epoch: 15320/20000, Loss: 0.0000004249050960\n",
      "Epoch: 15330/20000, Loss: 0.0000004091602648\n",
      "Epoch: 15340/20000, Loss: 0.0000003978026086\n",
      "Epoch: 15350/20000, Loss: 0.0000003966033262\n",
      "Epoch: 15360/20000, Loss: 0.0000003949584197\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 15370/20000, Loss: 0.0000003934139841\n",
      "Epoch: 15380/20000, Loss: 0.0000003921940674\n",
      "Epoch: 15390/20000, Loss: 0.0000003910376449\n",
      "Epoch: 15400/20000, Loss: 0.0000003898807108\n",
      "Epoch: 15410/20000, Loss: 0.0000003887662388\n",
      "Epoch: 15420/20000, Loss: 0.0000003876666597\n",
      "Epoch: 15430/20000, Loss: 0.0000003865851284\n",
      "Epoch: 15440/20000, Loss: 0.0000003855158752\n",
      "Epoch: 15450/20000, Loss: 0.0000003844546370\n",
      "Epoch: 15460/20000, Loss: 0.0000003834038864\n",
      "Epoch: 15470/20000, Loss: 0.0000003823620318\n",
      "Epoch: 15480/20000, Loss: 0.0000003813364060\n",
      "Epoch: 15490/20000, Loss: 0.0000003812814668\n",
      "Epoch: 15500/20000, Loss: 0.0000005692399441\n",
      "Epoch: 15510/20000, Loss: 0.0000091227566372\n",
      "Epoch: 15520/20000, Loss: 0.0000042276274144\n",
      "Epoch: 15530/20000, Loss: 0.0000008755374665\n",
      "Epoch: 15540/20000, Loss: 0.0000006470069707\n",
      "Epoch: 15550/20000, Loss: 0.0000005376722925\n",
      "Epoch: 15560/20000, Loss: 0.0000003922465623\n",
      "Epoch: 15570/20000, Loss: 0.0000004060148626\n",
      "Epoch: 15580/20000, Loss: 0.0000003778383189\n",
      "Epoch: 15590/20000, Loss: 0.0000003763533414\n",
      "Epoch: 15600/20000, Loss: 0.0000003750341477\n",
      "Epoch: 15610/20000, Loss: 0.0000003733051983\n",
      "Epoch: 15620/20000, Loss: 0.0000003719731581\n",
      "Epoch: 15630/20000, Loss: 0.0000003708416898\n",
      "Epoch: 15640/20000, Loss: 0.0000003697777800\n",
      "Epoch: 15650/20000, Loss: 0.0000003687731578\n",
      "Epoch: 15660/20000, Loss: 0.0000003677970142\n",
      "Epoch: 15670/20000, Loss: 0.0000003668392026\n",
      "Epoch: 15680/20000, Loss: 0.0000003659488641\n",
      "Epoch: 15690/20000, Loss: 0.0000003671242723\n",
      "Epoch: 15700/20000, Loss: 0.0000005160629257\n",
      "Epoch: 15710/20000, Loss: 0.0000122144992929\n",
      "Epoch: 15720/20000, Loss: 0.0000025573549465\n",
      "Epoch: 15730/20000, Loss: 0.0000018528410237\n",
      "Epoch: 15740/20000, Loss: 0.0000007605382848\n",
      "Epoch: 15750/20000, Loss: 0.0000003776280266\n",
      "Epoch: 15760/20000, Loss: 0.0000004011396584\n",
      "Epoch: 15770/20000, Loss: 0.0000003852011332\n",
      "Epoch: 15780/20000, Loss: 0.0000003632459311\n",
      "Epoch: 15790/20000, Loss: 0.0000003636012877\n",
      "Epoch: 15800/20000, Loss: 0.0000003605449876\n",
      "Epoch: 15810/20000, Loss: 0.0000003586411026\n",
      "Epoch: 15820/20000, Loss: 0.0000003576673464\n",
      "Epoch: 15830/20000, Loss: 0.0000003566538851\n",
      "Epoch: 15840/20000, Loss: 0.0000003556539525\n",
      "Epoch: 15850/20000, Loss: 0.0000003546817027\n",
      "Epoch: 15860/20000, Loss: 0.0000003537399209\n",
      "Epoch: 15870/20000, Loss: 0.0000003528053014\n",
      "Epoch: 15880/20000, Loss: 0.0000003518838412\n",
      "Epoch: 15890/20000, Loss: 0.0000003509693158\n",
      "Epoch: 15900/20000, Loss: 0.0000003500702803\n",
      "Epoch: 15910/20000, Loss: 0.0000003492766325\n",
      "Epoch: 15920/20000, Loss: 0.0000003578158498\n",
      "Epoch: 15930/20000, Loss: 0.0000020115251118\n",
      "Epoch: 15940/20000, Loss: 0.0000005037159667\n",
      "Epoch: 15950/20000, Loss: 0.0000006070699783\n",
      "Epoch: 15960/20000, Loss: 0.0000003931352808\n",
      "Epoch: 15970/20000, Loss: 0.0000003634334007\n",
      "Epoch: 15980/20000, Loss: 0.0000003596933027\n",
      "Epoch: 15990/20000, Loss: 0.0000003624411988\n",
      "Epoch: 16000/20000, Loss: 0.0000003625632985\n",
      "Epoch: 16010/20000, Loss: 0.0000003545155209\n",
      "Epoch: 16020/20000, Loss: 0.0000003468375667\n",
      "Epoch: 16030/20000, Loss: 0.0000003453887132\n",
      "Epoch: 16040/20000, Loss: 0.0000003442516174\n",
      "Epoch: 16050/20000, Loss: 0.0000003429748290\n",
      "Epoch: 16060/20000, Loss: 0.0000003419879704\n",
      "Epoch: 16070/20000, Loss: 0.0000003410226270\n",
      "Epoch: 16080/20000, Loss: 0.0000003400728303\n",
      "Epoch: 16090/20000, Loss: 0.0000003391534733\n",
      "Epoch: 16100/20000, Loss: 0.0000003382710929\n",
      "Epoch: 16110/20000, Loss: 0.0000003387061440\n",
      "Epoch: 16120/20000, Loss: 0.0000005008647008\n",
      "Epoch: 16130/20000, Loss: 0.0000013964486243\n",
      "Epoch: 16140/20000, Loss: 0.0000008911384839\n",
      "Epoch: 16150/20000, Loss: 0.0000003636833412\n",
      "Epoch: 16160/20000, Loss: 0.0000003583919863\n",
      "Epoch: 16170/20000, Loss: 0.0000003727151636\n",
      "Epoch: 16180/20000, Loss: 0.0000003790266021\n",
      "Epoch: 16190/20000, Loss: 0.0000010454474477\n",
      "Epoch: 16200/20000, Loss: 0.0000047602366067\n",
      "Epoch: 16210/20000, Loss: 0.0000015060190890\n",
      "Epoch: 16220/20000, Loss: 0.0000004603212744\n",
      "Epoch: 16230/20000, Loss: 0.0000003338571730\n",
      "Epoch: 16240/20000, Loss: 0.0000003300955598\n",
      "Epoch: 16250/20000, Loss: 0.0000003302839389\n",
      "Epoch: 16260/20000, Loss: 0.0000003354736293\n",
      "Epoch: 16270/20000, Loss: 0.0000003319251221\n",
      "Epoch: 16280/20000, Loss: 0.0000003274002438\n",
      "Epoch: 16290/20000, Loss: 0.0000003252414160\n",
      "Epoch: 16300/20000, Loss: 0.0000003246543940\n",
      "Epoch: 16310/20000, Loss: 0.0000003295602369\n",
      "Epoch: 16320/20000, Loss: 0.0000006871705978\n",
      "Epoch: 16330/20000, Loss: 0.0000112018060463\n",
      "Epoch: 16340/20000, Loss: 0.0000004525983570\n",
      "Epoch: 16350/20000, Loss: 0.0000011205480632\n",
      "Epoch: 16360/20000, Loss: 0.0000006856247410\n",
      "Epoch: 16370/20000, Loss: 0.0000003293499731\n",
      "Epoch: 16380/20000, Loss: 0.0000003731846050\n",
      "Epoch: 16390/20000, Loss: 0.0000003247752716\n",
      "Epoch: 16400/20000, Loss: 0.0000003287432264\n",
      "Epoch: 16410/20000, Loss: 0.0000003207929637\n",
      "Epoch: 16420/20000, Loss: 0.0000003193236751\n",
      "Epoch: 16430/20000, Loss: 0.0000003185441528\n",
      "Epoch: 16440/20000, Loss: 0.0000003175817085\n",
      "Epoch: 16450/20000, Loss: 0.0000003166744307\n",
      "Epoch: 16460/20000, Loss: 0.0000003158393156\n",
      "Epoch: 16470/20000, Loss: 0.0000003152156296\n",
      "Epoch: 16480/20000, Loss: 0.0000003290488166\n",
      "Epoch: 16490/20000, Loss: 0.0000021127852960\n",
      "Epoch: 16500/20000, Loss: 0.0000024282123832\n",
      "Epoch: 16510/20000, Loss: 0.0000005799716973\n",
      "Epoch: 16520/20000, Loss: 0.0000004744708235\n",
      "Epoch: 16530/20000, Loss: 0.0000004135437734\n",
      "Epoch: 16540/20000, Loss: 0.0000004169805266\n",
      "Epoch: 16550/20000, Loss: 0.0000008673248431\n",
      "Epoch: 16560/20000, Loss: 0.0000037879128740\n",
      "Epoch: 16570/20000, Loss: 0.0000010599967482\n",
      "Epoch: 16580/20000, Loss: 0.0000005243725809\n",
      "Epoch: 16590/20000, Loss: 0.0000003310890122\n",
      "Epoch: 16600/20000, Loss: 0.0000003222717737\n",
      "Epoch: 16610/20000, Loss: 0.0000003431358095\n",
      "Epoch: 16620/20000, Loss: 0.0000003131325741\n",
      "Epoch: 16630/20000, Loss: 0.0000003061740586\n",
      "Epoch: 16640/20000, Loss: 0.0000003053821445\n",
      "Epoch: 16650/20000, Loss: 0.0000003115752065\n",
      "Epoch: 16660/20000, Loss: 0.0000008684041291\n",
      "Epoch: 16670/20000, Loss: 0.0000095078821687\n",
      "Epoch: 16680/20000, Loss: 0.0000014643836721\n",
      "Epoch: 16690/20000, Loss: 0.0000003626282137\n",
      "Epoch: 16700/20000, Loss: 0.0000005210941367\n",
      "Epoch: 16710/20000, Loss: 0.0000004431171590\n",
      "Epoch: 16720/20000, Loss: 0.0000003076271469\n",
      "Epoch: 16730/20000, Loss: 0.0000003204754364\n",
      "Epoch: 16740/20000, Loss: 0.0000003036211638\n",
      "Epoch: 16750/20000, Loss: 0.0000003044610253\n",
      "Epoch: 16760/20000, Loss: 0.0000003012907541\n",
      "Epoch: 16770/20000, Loss: 0.0000003001351843\n",
      "Epoch: 16780/20000, Loss: 0.0000002993550083\n",
      "Epoch: 16790/20000, Loss: 0.0000002985508729\n",
      "Epoch: 16800/20000, Loss: 0.0000002977749887\n",
      "Epoch: 16810/20000, Loss: 0.0000002970278956\n",
      "Epoch: 16820/20000, Loss: 0.0000002962950134\n",
      "Epoch: 16830/20000, Loss: 0.0000002955692366\n",
      "Epoch: 16840/20000, Loss: 0.0000002949423958\n",
      "Epoch: 16850/20000, Loss: 0.0000003007271516\n",
      "Epoch: 16860/20000, Loss: 0.0000011892153680\n",
      "Epoch: 16870/20000, Loss: 0.0000058869609347\n",
      "Epoch: 16880/20000, Loss: 0.0000017012242779\n",
      "Epoch: 16890/20000, Loss: 0.0000009846311286\n",
      "Epoch: 16900/20000, Loss: 0.0000004435898120\n",
      "Epoch: 16910/20000, Loss: 0.0000003222862119\n",
      "Epoch: 16920/20000, Loss: 0.0000003012824550\n",
      "Epoch: 16930/20000, Loss: 0.0000002965146280\n",
      "Epoch: 16940/20000, Loss: 0.0000002960744325\n",
      "Epoch: 16950/20000, Loss: 0.0000002913883463\n",
      "Epoch: 16960/20000, Loss: 0.0000002907193561\n",
      "Epoch: 16970/20000, Loss: 0.0000002891572137\n",
      "Epoch: 16980/20000, Loss: 0.0000002898383116\n",
      "Epoch: 16990/20000, Loss: 0.0000003332200151\n",
      "Epoch: 17000/20000, Loss: 0.0000028699967061\n",
      "Epoch: 17010/20000, Loss: 0.0000004271344380\n",
      "Epoch: 17020/20000, Loss: 0.0000019422775495\n",
      "Epoch: 17030/20000, Loss: 0.0000003629082812\n",
      "Epoch: 17040/20000, Loss: 0.0000004769438533\n",
      "Epoch: 17050/20000, Loss: 0.0000002925628735\n",
      "Epoch: 17060/20000, Loss: 0.0000003160645008\n",
      "Epoch: 17070/20000, Loss: 0.0000002932197276\n",
      "Epoch: 17080/20000, Loss: 0.0000002856394588\n",
      "Epoch: 17090/20000, Loss: 0.0000002842876086\n",
      "Epoch: 17100/20000, Loss: 0.0000002835373039\n",
      "Epoch: 17110/20000, Loss: 0.0000002828945469\n",
      "Epoch: 17120/20000, Loss: 0.0000002821652174\n",
      "Epoch: 17130/20000, Loss: 0.0000002813636684\n",
      "Epoch: 17140/20000, Loss: 0.0000002807139481\n",
      "Epoch: 17150/20000, Loss: 0.0000002801420464\n",
      "Epoch: 17160/20000, Loss: 0.0000002811049455\n",
      "Epoch: 17170/20000, Loss: 0.0000003539986722\n",
      "Epoch: 17180/20000, Loss: 0.0000058637897382\n",
      "Epoch: 17190/20000, Loss: 0.0000045322840379\n",
      "Epoch: 17200/20000, Loss: 0.0000003242085143\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 17210/20000, Loss: 0.0000006050254342\n",
      "Epoch: 17220/20000, Loss: 0.0000004710032613\n",
      "Epoch: 17230/20000, Loss: 0.0000002821031728\n",
      "Epoch: 17240/20000, Loss: 0.0000003083299589\n",
      "Epoch: 17250/20000, Loss: 0.0000002790998792\n",
      "Epoch: 17260/20000, Loss: 0.0000002795849809\n",
      "Epoch: 17270/20000, Loss: 0.0000002781168860\n",
      "Epoch: 17280/20000, Loss: 0.0000002762715781\n",
      "Epoch: 17290/20000, Loss: 0.0000002752916544\n",
      "Epoch: 17300/20000, Loss: 0.0000002754179320\n",
      "Epoch: 17310/20000, Loss: 0.0000003148702774\n",
      "Epoch: 17320/20000, Loss: 0.0000021298621959\n",
      "Epoch: 17330/20000, Loss: 0.0000009925049653\n",
      "Epoch: 17340/20000, Loss: 0.0000002774738164\n",
      "Epoch: 17350/20000, Loss: 0.0000003655634373\n",
      "Epoch: 17360/20000, Loss: 0.0000002719334020\n",
      "Epoch: 17370/20000, Loss: 0.0000002868784179\n",
      "Epoch: 17380/20000, Loss: 0.0000004674525655\n",
      "Epoch: 17390/20000, Loss: 0.0000074678277997\n",
      "Epoch: 17400/20000, Loss: 0.0000033746789541\n",
      "Epoch: 17410/20000, Loss: 0.0000003004242615\n",
      "Epoch: 17420/20000, Loss: 0.0000006451560353\n",
      "Epoch: 17430/20000, Loss: 0.0000002873437666\n",
      "Epoch: 17440/20000, Loss: 0.0000003000393747\n",
      "Epoch: 17450/20000, Loss: 0.0000002860976736\n",
      "Epoch: 17460/20000, Loss: 0.0000002731490270\n",
      "Epoch: 17470/20000, Loss: 0.0000002692062253\n",
      "Epoch: 17480/20000, Loss: 0.0000002675674580\n",
      "Epoch: 17490/20000, Loss: 0.0000002663281293\n",
      "Epoch: 17500/20000, Loss: 0.0000002653656281\n",
      "Epoch: 17510/20000, Loss: 0.0000002648233135\n",
      "Epoch: 17520/20000, Loss: 0.0000002641586150\n",
      "Epoch: 17530/20000, Loss: 0.0000002637735577\n",
      "Epoch: 17540/20000, Loss: 0.0000002691057830\n",
      "Epoch: 17550/20000, Loss: 0.0000006189881105\n",
      "Epoch: 17560/20000, Loss: 0.0000113156029329\n",
      "Epoch: 17570/20000, Loss: 0.0000006630016287\n",
      "Epoch: 17580/20000, Loss: 0.0000008075475080\n",
      "Epoch: 17590/20000, Loss: 0.0000006018171916\n",
      "Epoch: 17600/20000, Loss: 0.0000003845615879\n",
      "Epoch: 17610/20000, Loss: 0.0000002863806401\n",
      "Epoch: 17620/20000, Loss: 0.0000002643647292\n",
      "Epoch: 17630/20000, Loss: 0.0000002667019885\n",
      "Epoch: 17640/20000, Loss: 0.0000002625104401\n",
      "Epoch: 17650/20000, Loss: 0.0000002605244447\n",
      "Epoch: 17660/20000, Loss: 0.0000002597976447\n",
      "Epoch: 17670/20000, Loss: 0.0000002589753478\n",
      "Epoch: 17680/20000, Loss: 0.0000002582773959\n",
      "Epoch: 17690/20000, Loss: 0.0000002576691713\n",
      "Epoch: 17700/20000, Loss: 0.0000002571740936\n",
      "Epoch: 17710/20000, Loss: 0.0000002610971421\n",
      "Epoch: 17720/20000, Loss: 0.0000006406531838\n",
      "Epoch: 17730/20000, Loss: 0.0000096381872936\n",
      "Epoch: 17740/20000, Loss: 0.0000007770529464\n",
      "Epoch: 17750/20000, Loss: 0.0000006373758765\n",
      "Epoch: 17760/20000, Loss: 0.0000004166755900\n",
      "Epoch: 17770/20000, Loss: 0.0000003571085472\n",
      "Epoch: 17780/20000, Loss: 0.0000002917605002\n",
      "Epoch: 17790/20000, Loss: 0.0000002608902037\n",
      "Epoch: 17800/20000, Loss: 0.0000002577916405\n",
      "Epoch: 17810/20000, Loss: 0.0000002551230409\n",
      "Epoch: 17820/20000, Loss: 0.0000002536691568\n",
      "Epoch: 17830/20000, Loss: 0.0000002528613265\n",
      "Epoch: 17840/20000, Loss: 0.0000002521677231\n",
      "Epoch: 17850/20000, Loss: 0.0000002515042183\n",
      "Epoch: 17860/20000, Loss: 0.0000002509201806\n",
      "Epoch: 17870/20000, Loss: 0.0000002503416567\n",
      "Epoch: 17880/20000, Loss: 0.0000002497767753\n",
      "Epoch: 17890/20000, Loss: 0.0000002492496662\n",
      "Epoch: 17900/20000, Loss: 0.0000002498716185\n",
      "Epoch: 17910/20000, Loss: 0.0000003462178597\n",
      "Epoch: 17920/20000, Loss: 0.0000102732356027\n",
      "Epoch: 17930/20000, Loss: 0.0000035872367334\n",
      "Epoch: 17940/20000, Loss: 0.0000017627506850\n",
      "Epoch: 17950/20000, Loss: 0.0000007499277217\n",
      "Epoch: 17960/20000, Loss: 0.0000004380390237\n",
      "Epoch: 17970/20000, Loss: 0.0000003095619547\n",
      "Epoch: 17980/20000, Loss: 0.0000002556852223\n",
      "Epoch: 17990/20000, Loss: 0.0000002506156704\n",
      "Epoch: 18000/20000, Loss: 0.0000002511102366\n",
      "Epoch: 18010/20000, Loss: 0.0000002482412924\n",
      "Epoch: 18020/20000, Loss: 0.0000002468956097\n",
      "Epoch: 18030/20000, Loss: 0.0000002462979580\n",
      "Epoch: 18040/20000, Loss: 0.0000002455236938\n",
      "Epoch: 18050/20000, Loss: 0.0000002448996099\n",
      "Epoch: 18060/20000, Loss: 0.0000002442997982\n",
      "Epoch: 18070/20000, Loss: 0.0000002437101898\n",
      "Epoch: 18080/20000, Loss: 0.0000002431343660\n",
      "Epoch: 18090/20000, Loss: 0.0000002425728098\n",
      "Epoch: 18100/20000, Loss: 0.0000002420195528\n",
      "Epoch: 18110/20000, Loss: 0.0000002414742255\n",
      "Epoch: 18120/20000, Loss: 0.0000002409525166\n",
      "Epoch: 18130/20000, Loss: 0.0000002428058110\n",
      "Epoch: 18140/20000, Loss: 0.0000009083918826\n",
      "Epoch: 18150/20000, Loss: 0.0000031924587347\n",
      "Epoch: 18160/20000, Loss: 0.0000012930644289\n",
      "Epoch: 18170/20000, Loss: 0.0000007411633192\n",
      "Epoch: 18180/20000, Loss: 0.0000007166964906\n",
      "Epoch: 18190/20000, Loss: 0.0000002601866811\n",
      "Epoch: 18200/20000, Loss: 0.0000002746981522\n",
      "Epoch: 18210/20000, Loss: 0.0000002617381938\n",
      "Epoch: 18220/20000, Loss: 0.0000002424767445\n",
      "Epoch: 18230/20000, Loss: 0.0000002401905874\n",
      "Epoch: 18240/20000, Loss: 0.0000002396700154\n",
      "Epoch: 18250/20000, Loss: 0.0000002388530334\n",
      "Epoch: 18260/20000, Loss: 0.0000002380528485\n",
      "Epoch: 18270/20000, Loss: 0.0000002373876100\n",
      "Epoch: 18280/20000, Loss: 0.0000002367898020\n",
      "Epoch: 18290/20000, Loss: 0.0000002362270237\n",
      "Epoch: 18300/20000, Loss: 0.0000002356812132\n",
      "Epoch: 18310/20000, Loss: 0.0000002351502530\n",
      "Epoch: 18320/20000, Loss: 0.0000002346277626\n",
      "Epoch: 18330/20000, Loss: 0.0000002341168823\n",
      "Epoch: 18340/20000, Loss: 0.0000002336082900\n",
      "Epoch: 18350/20000, Loss: 0.0000002331072864\n",
      "Epoch: 18360/20000, Loss: 0.0000002326145960\n",
      "Epoch: 18370/20000, Loss: 0.0000002324345871\n",
      "Epoch: 18380/20000, Loss: 0.0000002835483883\n",
      "Epoch: 18390/20000, Loss: 0.0000114312879305\n",
      "Epoch: 18400/20000, Loss: 0.0000025969361559\n",
      "Epoch: 18410/20000, Loss: 0.0000007884903539\n",
      "Epoch: 18420/20000, Loss: 0.0000003721521011\n",
      "Epoch: 18430/20000, Loss: 0.0000003021075088\n",
      "Epoch: 18440/20000, Loss: 0.0000002624070987\n",
      "Epoch: 18450/20000, Loss: 0.0000002463918634\n",
      "Epoch: 18460/20000, Loss: 0.0000002415937104\n",
      "Epoch: 18470/20000, Loss: 0.0000002379914861\n",
      "Epoch: 18480/20000, Loss: 0.0000002341273273\n",
      "Epoch: 18490/20000, Loss: 0.0000002322395574\n",
      "Epoch: 18500/20000, Loss: 0.0000002315819216\n",
      "Epoch: 18510/20000, Loss: 0.0000002307643570\n",
      "Epoch: 18520/20000, Loss: 0.0000002301679700\n",
      "Epoch: 18530/20000, Loss: 0.0000002295551553\n",
      "Epoch: 18540/20000, Loss: 0.0000002289825858\n",
      "Epoch: 18550/20000, Loss: 0.0000002284274530\n",
      "Epoch: 18560/20000, Loss: 0.0000002278826940\n",
      "Epoch: 18570/20000, Loss: 0.0000002273521886\n",
      "Epoch: 18580/20000, Loss: 0.0000002268303803\n",
      "Epoch: 18590/20000, Loss: 0.0000002263183916\n",
      "Epoch: 18600/20000, Loss: 0.0000002258140626\n",
      "Epoch: 18610/20000, Loss: 0.0000002253196953\n",
      "Epoch: 18620/20000, Loss: 0.0000002248290656\n",
      "Epoch: 18630/20000, Loss: 0.0000002243440633\n",
      "Epoch: 18640/20000, Loss: 0.0000002238758015\n",
      "Epoch: 18650/20000, Loss: 0.0000002240531245\n",
      "Epoch: 18660/20000, Loss: 0.0000003083836475\n",
      "Epoch: 18670/20000, Loss: 0.0000126882741824\n",
      "Epoch: 18680/20000, Loss: 0.0000012452658211\n",
      "Epoch: 18690/20000, Loss: 0.0000006424186836\n",
      "Epoch: 18700/20000, Loss: 0.0000003395394117\n",
      "Epoch: 18710/20000, Loss: 0.0000002740376033\n",
      "Epoch: 18720/20000, Loss: 0.0000002588176358\n",
      "Epoch: 18730/20000, Loss: 0.0000002495994806\n",
      "Epoch: 18740/20000, Loss: 0.0000002366159606\n",
      "Epoch: 18750/20000, Loss: 0.0000002260173062\n",
      "Epoch: 18760/20000, Loss: 0.0000002236016172\n",
      "Epoch: 18770/20000, Loss: 0.0000002233006171\n",
      "Epoch: 18780/20000, Loss: 0.0000002221247826\n",
      "Epoch: 18790/20000, Loss: 0.0000002218937567\n",
      "Epoch: 18800/20000, Loss: 0.0000002401708059\n",
      "Epoch: 18810/20000, Loss: 0.0000019195299501\n",
      "Epoch: 18820/20000, Loss: 0.0000012127404716\n",
      "Epoch: 18830/20000, Loss: 0.0000003159397011\n",
      "Epoch: 18840/20000, Loss: 0.0000002833993733\n",
      "Epoch: 18850/20000, Loss: 0.0000002608619809\n",
      "Epoch: 18860/20000, Loss: 0.0000002210373253\n",
      "Epoch: 18870/20000, Loss: 0.0000002242726396\n",
      "Epoch: 18880/20000, Loss: 0.0000002176928575\n",
      "Epoch: 18890/20000, Loss: 0.0000002173640041\n",
      "Epoch: 18900/20000, Loss: 0.0000002166534330\n",
      "Epoch: 18910/20000, Loss: 0.0000002159750068\n",
      "Epoch: 18920/20000, Loss: 0.0000002154983889\n",
      "Epoch: 18930/20000, Loss: 0.0000002167432456\n",
      "Epoch: 18940/20000, Loss: 0.0000003848773531\n",
      "Epoch: 18950/20000, Loss: 0.0000135023719849\n",
      "Epoch: 18960/20000, Loss: 0.0000003910457451\n",
      "Epoch: 18970/20000, Loss: 0.0000006535237276\n",
      "Epoch: 18980/20000, Loss: 0.0000005575772661\n",
      "Epoch: 18990/20000, Loss: 0.0000004090118466\n",
      "Epoch: 19000/20000, Loss: 0.0000002753758963\n",
      "Epoch: 19010/20000, Loss: 0.0000002187123869\n",
      "Epoch: 19020/20000, Loss: 0.0000002218671966\n",
      "Epoch: 19030/20000, Loss: 0.0000002176680027\n",
      "Epoch: 19040/20000, Loss: 0.0000002152261658\n",
      "Epoch: 19050/20000, Loss: 0.0000002143334825\n",
      "Epoch: 19060/20000, Loss: 0.0000002137289954\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 19070/20000, Loss: 0.0000002130270360\n",
      "Epoch: 19080/20000, Loss: 0.0000002124780849\n",
      "Epoch: 19090/20000, Loss: 0.0000002119646467\n",
      "Epoch: 19100/20000, Loss: 0.0000002114647515\n",
      "Epoch: 19110/20000, Loss: 0.0000002110574542\n",
      "Epoch: 19120/20000, Loss: 0.0000002164147048\n",
      "Epoch: 19130/20000, Loss: 0.0000009787868294\n",
      "Epoch: 19140/20000, Loss: 0.0000007813544016\n",
      "Epoch: 19150/20000, Loss: 0.0000003206840518\n",
      "Epoch: 19160/20000, Loss: 0.0000003877991048\n",
      "Epoch: 19170/20000, Loss: 0.0000002746238579\n",
      "Epoch: 19180/20000, Loss: 0.0000003852953512\n",
      "Epoch: 19190/20000, Loss: 0.0000038577682062\n",
      "Epoch: 19200/20000, Loss: 0.0000008726321425\n",
      "Epoch: 19210/20000, Loss: 0.0000008996830161\n",
      "Epoch: 19220/20000, Loss: 0.0000005013283726\n",
      "Epoch: 19230/20000, Loss: 0.0000002922107853\n",
      "Epoch: 19240/20000, Loss: 0.0000002393764191\n",
      "Epoch: 19250/20000, Loss: 0.0000002245950412\n",
      "Epoch: 19260/20000, Loss: 0.0000002126997742\n",
      "Epoch: 19270/20000, Loss: 0.0000002065943221\n",
      "Epoch: 19280/20000, Loss: 0.0000002075090180\n",
      "Epoch: 19290/20000, Loss: 0.0000002094391789\n",
      "Epoch: 19300/20000, Loss: 0.0000002377598776\n",
      "Epoch: 19310/20000, Loss: 0.0000010625399227\n",
      "Epoch: 19320/20000, Loss: 0.0000041256103032\n",
      "Epoch: 19330/20000, Loss: 0.0000003902756305\n",
      "Epoch: 19340/20000, Loss: 0.0000004613473834\n",
      "Epoch: 19350/20000, Loss: 0.0000004148189134\n",
      "Epoch: 19360/20000, Loss: 0.0000002514985908\n",
      "Epoch: 19370/20000, Loss: 0.0000002121711162\n",
      "Epoch: 19380/20000, Loss: 0.0000002067415750\n",
      "Epoch: 19390/20000, Loss: 0.0000002062097622\n",
      "Epoch: 19400/20000, Loss: 0.0000002051412906\n",
      "Epoch: 19410/20000, Loss: 0.0000002026050936\n",
      "Epoch: 19420/20000, Loss: 0.0000002027128261\n",
      "Epoch: 19430/20000, Loss: 0.0000002025910675\n",
      "Epoch: 19440/20000, Loss: 0.0000002082948072\n",
      "Epoch: 19450/20000, Loss: 0.0000003933478467\n",
      "Epoch: 19460/20000, Loss: 0.0000062127637648\n",
      "Epoch: 19470/20000, Loss: 0.0000025164124509\n",
      "Epoch: 19480/20000, Loss: 0.0000008425099054\n",
      "Epoch: 19490/20000, Loss: 0.0000002671143875\n",
      "Epoch: 19500/20000, Loss: 0.0000002124837977\n",
      "Epoch: 19510/20000, Loss: 0.0000002219949522\n",
      "Epoch: 19520/20000, Loss: 0.0000002148189395\n",
      "Epoch: 19530/20000, Loss: 0.0000002020890548\n",
      "Epoch: 19540/20000, Loss: 0.0000001994022938\n",
      "Epoch: 19550/20000, Loss: 0.0000001992909660\n",
      "Epoch: 19560/20000, Loss: 0.0000001998143802\n",
      "Epoch: 19570/20000, Loss: 0.0000002540388664\n",
      "Epoch: 19580/20000, Loss: 0.0000038587131712\n",
      "Epoch: 19590/20000, Loss: 0.0000018515227111\n",
      "Epoch: 19600/20000, Loss: 0.0000009184815326\n",
      "Epoch: 19610/20000, Loss: 0.0000006733751547\n",
      "Epoch: 19620/20000, Loss: 0.0000002123252187\n",
      "Epoch: 19630/20000, Loss: 0.0000002698793935\n",
      "Epoch: 19640/20000, Loss: 0.0000002051802568\n",
      "Epoch: 19650/20000, Loss: 0.0000002008910087\n",
      "Epoch: 19660/20000, Loss: 0.0000002010435480\n",
      "Epoch: 19670/20000, Loss: 0.0000001983139128\n",
      "Epoch: 19680/20000, Loss: 0.0000001968792844\n",
      "Epoch: 19690/20000, Loss: 0.0000001960843576\n",
      "Epoch: 19700/20000, Loss: 0.0000001954447697\n",
      "Epoch: 19710/20000, Loss: 0.0000001949169217\n",
      "Epoch: 19720/20000, Loss: 0.0000001944898997\n",
      "Epoch: 19730/20000, Loss: 0.0000001940465495\n",
      "Epoch: 19740/20000, Loss: 0.0000001936772236\n",
      "Epoch: 19750/20000, Loss: 0.0000001948068586\n",
      "Epoch: 19760/20000, Loss: 0.0000002823755665\n",
      "Epoch: 19770/20000, Loss: 0.0000077438662629\n",
      "Epoch: 19780/20000, Loss: 0.0000045950296226\n",
      "Epoch: 19790/20000, Loss: 0.0000008961662274\n",
      "Epoch: 19800/20000, Loss: 0.0000002052175603\n",
      "Epoch: 19810/20000, Loss: 0.0000003446493224\n",
      "Epoch: 19820/20000, Loss: 0.0000002452495949\n",
      "Epoch: 19830/20000, Loss: 0.0000001994794019\n",
      "Epoch: 19840/20000, Loss: 0.0000002017856104\n",
      "Epoch: 19850/20000, Loss: 0.0000001951989077\n",
      "Epoch: 19860/20000, Loss: 0.0000001927368345\n",
      "Epoch: 19870/20000, Loss: 0.0000001924666861\n",
      "Epoch: 19880/20000, Loss: 0.0000001922238368\n",
      "Epoch: 19890/20000, Loss: 0.0000002151378453\n",
      "Epoch: 19900/20000, Loss: 0.0000019855838218\n",
      "Epoch: 19910/20000, Loss: 0.0000011784313756\n",
      "Epoch: 19920/20000, Loss: 0.0000002159982273\n",
      "Epoch: 19930/20000, Loss: 0.0000002867578530\n",
      "Epoch: 19940/20000, Loss: 0.0000002127903969\n",
      "Epoch: 19950/20000, Loss: 0.0000001988168350\n",
      "Epoch: 19960/20000, Loss: 0.0000001940908021\n",
      "Epoch: 19970/20000, Loss: 0.0000002103947736\n",
      "Epoch: 19980/20000, Loss: 0.0000007034715281\n",
      "Epoch: 19990/20000, Loss: 0.0000064280652623\n",
      "Epoch: 20000/20000, Loss: 0.0000012396001239\n"
     ]
    }
   ],
   "source": [
    "# Create LEM instance\n",
    "lem = LEM(input_size, hidden_size, output_size, dt=0.1)\n",
    "\n",
    "# Loss and optimizer\n",
    "criterion = nn.MSELoss()\n",
    "optimizer = torch.optim.Adam(lem.parameters(), lr=0.001)\n",
    "\n",
    "# Training loop\n",
    "for epoch in range(num_epochs):\n",
    "    # Forward pass\n",
    "    output = lem(input_tensor)\n",
    "    loss = criterion(output, target_tensor)\n",
    "\n",
    "    # Backward and optimize\n",
    "    optimizer.zero_grad()\n",
    "    loss.backward()\n",
    "    optimizer.step()\n",
    "\n",
    "    # Print progress\n",
    "    if (epoch + 1) % 10 == 0:\n",
    "        print(f'Epoch: {epoch + 1}/{num_epochs}, Loss: {loss.item():.16f}')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "1da66d64",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "torch.Size([1, 1, 256])\n",
      "torch.Size([1, 20, 256])\n"
     ]
    }
   ],
   "source": [
    "print(test_tensor.shape)\n",
    "prediction_tensor = torch.zeros(1, 20, 256).float()\n",
    "print(prediction_tensor.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "a0543daa",
   "metadata": {},
   "outputs": [],
   "source": [
    "with torch.no_grad():\n",
    "    prediction = lem(test_tensor)\n",
    "    prediction = prediction.view(1, 1, 256).float()\n",
    "    prediction_tensor[:, 0, :] = prediction\n",
    "    for i in range(19):\n",
    "        prediction = lem(prediction)\n",
    "        prediction = prediction.view(1, 1, 256).float()\n",
    "        prediction_tensor[:, i+1, :] = prediction\n",
    "        "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2e6b9bad",
   "metadata": {},
   "source": [
    "### Four different types of error"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "9c33b0f5",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Exact Solution\n",
    "\n",
    "u_test = u_1.T\n",
    "u_test_full = u_test[80:100, :]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "00c8fa22",
   "metadata": {},
   "outputs": [],
   "source": [
    "prediction_tensor = torch.squeeze(prediction_tensor)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "334bf0be",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "torch.Size([20, 256])"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Extrapolation\n",
    "\n",
    "k1 = ( prediction_tensor - u_test_full)**2\n",
    "u_test_full_tensor = torch.tensor(u_test_full**2)\n",
    "u_test_full_tensor.shape"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "01080c4f",
   "metadata": {},
   "source": [
    "### L^2 norm error"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "33c17bd8",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Relative Error Test:  0.00013050968844696258 %\n"
     ]
    }
   ],
   "source": [
    "# Compute the relative L2 error norm (generalization error)\n",
    "relative_error_test = torch.mean(k1)/ torch.mean(u_test_full_tensor)\n",
    "\n",
    "print(\"Relative Error Test: \", relative_error_test.item(), \"%\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "fa3fa35b",
   "metadata": {},
   "source": [
    "### Max absolute norm error"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "01cf8637",
   "metadata": {},
   "outputs": [],
   "source": [
    "R_abs = torch.max(torch.abs(prediction_tensor - u_test_full))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "b3e65482",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor(0.0246, dtype=torch.float64)\n"
     ]
    }
   ],
   "source": [
    "print(R_abs)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "678810f2",
   "metadata": {},
   "source": [
    "### Explained variance score"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "02c72385",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Explained Variance Score: 0.9998695252949855\n"
     ]
    }
   ],
   "source": [
    "import torch\n",
    "\n",
    "a = prediction_tensor\n",
    "b = u_test_full\n",
    "# Assuming 'a' is your predicted values (model's predictions) and 'b' is the true values (ground truth)\n",
    "# Make sure 'a' and 'b' are PyTorch tensors\n",
    "# a = torch.tensor(a)\n",
    "b = torch.tensor(b)\n",
    "# Calculate the mean of 'b'\n",
    "mean_b = torch.mean(b)\n",
    "\n",
    "# Calculate the Explained Variance Score\n",
    "numerator = torch.var(b - a)  # Variance of the differences between 'b' and 'a'\n",
    "denominator = torch.var(b)    # Variance of 'b'\n",
    "evs = 1 - numerator / denominator\n",
    "\n",
    "print(\"Explained Variance Score:\", evs.item())"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f664baf6",
   "metadata": {},
   "source": [
    "### Mean absolute error"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "43fc2394",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Relative Error Test:  tensor(0.0035, dtype=torch.float64) %\n"
     ]
    }
   ],
   "source": [
    "# Compute the relative L2 error norm (generalization error)\n",
    "relative_error_test = torch.mean(torch.abs(prediction_tensor - u_test_full))\n",
    "\n",
    "print(\"Relative Error Test: \", relative_error_test, \"%\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "75e50e9e",
   "metadata": {},
   "source": [
    "### Contour plot for PINN (80 percent) and (20 percentage lem prediction)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "8e3eec75",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "torch.Size([20, 256])\n"
     ]
    }
   ],
   "source": [
    "print(prediction_tensor.shape)\n",
    "prediction_tensor = torch.squeeze(prediction_tensor)\n",
    "input_tensor = torch.squeeze(input_tensor)\n",
    "\n",
    "conc_u = torch.squeeze(input_tensor)\n",
    "concatenated_tensor = torch.cat((conc_u, prediction_tensor), dim=0)\n",
    "\n",
    "x1 = np.linspace(-1, 1, 256)\n",
    "t1 = np.linspace(0, 1, 99)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "58375ee7",
   "metadata": {},
   "outputs": [],
   "source": [
    "plt.rcParams['figure.figsize'] = [10, 4]\n",
    "\n",
    "from matplotlib.font_manager import FontProperties\n",
    "plt.rcParams['axes.unicode_minus'] = False\n",
    "font_path = 'times-new-roman.ttf'\n",
    "custom_font = FontProperties(fname=font_path)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e393a1e0",
   "metadata": {},
   "source": [
    "### Snapshot time plots"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "04f91104",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 360x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "import torch\n",
    "\n",
    "# Create the figure and axis objects with reduced width\n",
    "fig, ax = plt.subplots(figsize=(5, 5))  # You can adjust the width (7 inches) and height (5 inches) as needed\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "final_time_output = prediction_tensor[3, :]\n",
    "final_out = final_time_output.detach().numpy().reshape(-1, 1)\n",
    "final_true = u_1[:, 83].reshape(-1, 1)\n",
    "\n",
    "# Plot the data with red and blue lines, one with dotted and one with solid style\n",
    "ax.plot(x, final_out, color='red', linestyle='dotted', linewidth=12, label='Prediction')\n",
    "ax.plot(x, final_true, color='blue', linestyle='solid', linewidth=7, label='True')\n",
    "\n",
    "\n",
    "# Set the axis labels with bold font weight\n",
    "ax.set_xlabel(r\"${x}$\", fontsize=26, color='black', fontdict={'weight': 'bold'})\n",
    "ax.set_ylabel(r\"${u(x, t)}$\", fontsize=26, color='black', fontdict={'weight': 'bold'})\n",
    "\n",
    "# Set the title with bold font weight\n",
    "ax.set_title(r\"${t = 0.83}$\", fontsize=26, color='black', fontweight='bold')\n",
    "\n",
    "# Set the number of ticks for x-axis and y-axis to 3\n",
    "ax.set_xticks([0, 0.5, 1])\n",
    "ax.set_yticks([-1, 0, 1])\n",
    "\n",
    "# Set tick labels fontweight to bold and increase font size\n",
    "ax.tick_params(axis='both', which='major', labelsize=20, width=2, length=10)\n",
    "\n",
    "# # Set the fontweight for tick labels to bold\n",
    "# for tick in ax.get_xticklabels() + ax.get_yticklabels():\n",
    "#     tick.set_weight('bold')\n",
    "\n",
    "# Set the spines linewidth to bold\n",
    "ax.spines['top'].set_linewidth(2)\n",
    "ax.spines['right'].set_linewidth(2)\n",
    "ax.spines['bottom'].set_linewidth(2)\n",
    "ax.spines['left'].set_linewidth(2)\n",
    "\n",
    "# Set the legend\n",
    "# ax.legend()\n",
    "\n",
    "plt.savefig('LEM_0.83_20.pdf', dpi=500, bbox_inches=\"tight\")\n",
    "#plt.savefig('lem_0.83_20.png', dpi=500, bbox_inches=\"tight\")\n",
    "# Show the plot\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "3d96305e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 360x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "import torch\n",
    "\n",
    "# Create the figure and axis objects with reduced width\n",
    "fig, ax = plt.subplots(figsize=(5, 5))  # You can adjust the width (7 inches) and height (5 inches) as needed\n",
    "\n",
    "\n",
    "\n",
    "final_time_output = prediction_tensor[-2, :]\n",
    "final_out = final_time_output.detach().numpy().reshape(-1, 1)\n",
    "final_true = u_1[:, -2].reshape(-1, 1)\n",
    "\n",
    "# Plot the data with red and blue lines, one with dotted and one with solid style\n",
    "ax.plot(x, final_out, color='red', linestyle='dotted', linewidth=12, label='Prediction')\n",
    "ax.plot(x, final_true, color='blue', linestyle='solid', linewidth=7, label='True')\n",
    "\n",
    "\n",
    "# Set the axis labels with bold font weight\n",
    "ax.set_xlabel(r\"${x}$\", fontsize=26, color='black', fontdict={'weight': 'bold'})\n",
    "ax.set_ylabel(r\"${u(x, t)}$\", fontsize=26, color='black', fontdict={'weight': 'bold'})\n",
    "\n",
    "# Set the title with bold font weight\n",
    "ax.set_title(r\"${t = 0.98}$\", fontsize=26, color='black', fontweight='bold')\n",
    "\n",
    "# Set the number of ticks for x-axis and y-axis to 3\n",
    "ax.set_xticks([0, 0.5, 1])\n",
    "ax.set_yticks([-1, 0, 1])\n",
    "\n",
    "# Set tick labels fontweight to bold and increase font size\n",
    "ax.tick_params(axis='both', which='major', labelsize=20, width=2, length=10)\n",
    "\n",
    "# # Set the fontweight for tick labels to bold\n",
    "# for tick in ax.get_xticklabels() + ax.get_yticklabels():\n",
    "#     tick.set_weight('bold')\n",
    "\n",
    "# Set the spines linewidth to bold\n",
    "ax.spines['top'].set_linewidth(2)\n",
    "ax.spines['right'].set_linewidth(2)\n",
    "ax.spines['bottom'].set_linewidth(2)\n",
    "ax.spines['left'].set_linewidth(2)\n",
    "\n",
    "# Set the legend\n",
    "# ax.legend()\n",
    "\n",
    "plt.savefig('LEM_0.98_20.pdf', dpi=500, bbox_inches=\"tight\")\n",
    "#plt.savefig('lem_0.98_20.png', dpi=500, bbox_inches=\"tight\")\n",
    "# Show the plot\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d962cd38",
   "metadata": {},
   "source": [
    "### Contour plot where 80 percent for PINN solution and 20 percent for lem solution"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5011fef9",
   "metadata": {},
   "source": [
    "### Exact contour"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "8d6ac2bb",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1440x360 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import torch\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from matplotlib.ticker import FixedLocator\n",
    "\n",
    "# Assuming you have defined concatenated_tensor as a PyTorch tensor\n",
    "# concatenated_tensor = torch.cat((tensor1, tensor2), dim=0)\n",
    "\n",
    "# Convert concatenated_tensor to a NumPy array\n",
    "concatenated_array = u_1.T\n",
    "\n",
    "# Define custom color levels\n",
    "x = np.linspace(0, 1, concatenated_array.shape[1])  # Replace 0 and 1 with your actual x range\n",
    "t = np.linspace(0, 1, concatenated_array.shape[0])  # Replace 0 and 1 with your actual t range\n",
    "X, T = np.meshgrid(x, t)\n",
    "\n",
    "# Define custom color levels using the minimum and maximum from the NumPy array\n",
    "c_levels = np.linspace(np.min(concatenated_array), np.max(concatenated_array), 400)\n",
    "\n",
    "# Plot the contour with interpolated data\n",
    "plt.figure(figsize=(20, 5))\n",
    "plt.pcolormesh(T, X, concatenated_array, shading='auto', cmap='coolwarm')\n",
    "\n",
    "# Set the fontweight for axis labels to regular (not bold)\n",
    "plt.xlabel(\"$t$\", fontsize=26)\n",
    "plt.ylabel(\"$x$\", fontsize=26)\n",
    "plt.title(\"$u(x, t)$\", fontsize=26)\n",
    "\n",
    "# Set tick labels fontweight to regular (not bold) and increase font size\n",
    "plt.tick_params(axis='both', which='major', labelsize=20, width=3, length=10)\n",
    "\n",
    "# Set the fontweight for tick labels to regular (not bold)\n",
    "for tick in plt.gca().get_xticklabels() + plt.gca().get_yticklabels():\n",
    "    tick.set_weight('normal')\n",
    "\n",
    "# Set the number of ticks for x-axis and y-axis to 5\n",
    "num_ticks = 5\n",
    "x_ticks = np.linspace(np.min(T), np.max(T), num_ticks)\n",
    "y_ticks = np.linspace(np.min(X), np.max(X), num_ticks)\n",
    "\n",
    "plt.gca().xaxis.set_major_locator(FixedLocator(x_ticks))\n",
    "plt.gca().yaxis.set_major_locator(FixedLocator(y_ticks))\n",
    "\n",
    "cbar1 = plt.colorbar()\n",
    "# Set the number of ticks for the color bar with uniformly distributed numbers\n",
    "num_ticks = 5\n",
    "c_ticks = np.linspace(np.min(concatenated_array), np.max(concatenated_array), num_ticks)\n",
    "cbar1.set_ticks(c_ticks)\n",
    "\n",
    "# Set the fontweight and fontsize for color bar tick labels\n",
    "for t in cbar1.ax.get_yticklabels():\n",
    "    t.set_weight('normal')\n",
    "    t.set_fontsize(26)  # Increase the font size for color bar tick labels\n",
    "\n",
    "# Increase the size of numbers on axis and color bar\n",
    "plt.xticks(fontsize=26)\n",
    "plt.yticks(fontsize=26)\n",
    "\n",
    "# Increase the tick size and width of the color bar\n",
    "cbar1.ax.tick_params(axis='both', which='major', labelsize=30, width=3,  length=10)\n",
    "\n",
    "#plt.savefig('Contour_Exact.pdf', dpi=500, bbox_inches=\"tight\")\n",
    "plt.savefig('contour_exact.jpeg', dpi=500, bbox_inches=\"tight\")\n",
    "# Show the plot\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "c034dcf7",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1440x360 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import torch\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from matplotlib.ticker import FixedLocator\n",
    "\n",
    "# Assuming you have defined concatenated_tensor as a PyTorch tensor\n",
    "# concatenated_tensor = torch.cat((tensor1, tensor2), dim=0)\n",
    "\n",
    "# Convert concatenated_tensor to a NumPy array\n",
    "concatenated_array = concatenated_tensor.numpy()\n",
    "\n",
    "# Define custom color levels\n",
    "x = np.linspace(0, 1, concatenated_array.shape[1])  # Replace 0 and 1 with your actual x range\n",
    "t = np.linspace(0, 1, concatenated_array.shape[0])  # Replace 0 and 1 with your actual t range\n",
    "X, T = np.meshgrid(x, t1)\n",
    "\n",
    "# Define custom color levels using the minimum and maximum from the NumPy array\n",
    "c_levels = np.linspace(np.min(concatenated_array), np.max(concatenated_array), 400)\n",
    "\n",
    "# Plot the contour with interpolated data\n",
    "plt.figure(figsize=(20, 5))\n",
    "plt.pcolormesh(T, X, concatenated_array, shading='auto', cmap='coolwarm')\n",
    "\n",
    "# Set the fontweight for axis labels to regular (not bold)\n",
    "plt.xlabel(\"$t$\", fontsize=26)\n",
    "plt.ylabel(\"$x$\", fontsize=26)\n",
    "plt.title(\"$u(x, t)$\", fontsize=26)\n",
    "\n",
    "# Set tick labels fontweight to regular (not bold) and increase font size\n",
    "plt.tick_params(axis='both', which='major', labelsize=20, width=3, length=10)\n",
    "\n",
    "# Set the fontweight for tick labels to regular (not bold)\n",
    "for tick in plt.gca().get_xticklabels() + plt.gca().get_yticklabels():\n",
    "    tick.set_weight('normal')\n",
    "\n",
    "# Set the number of ticks for x-axis and y-axis to 5\n",
    "num_ticks = 5\n",
    "x_ticks = np.linspace(np.min(T), np.max(T), num_ticks)\n",
    "y_ticks = np.linspace(np.min(X), np.max(X), num_ticks)\n",
    "\n",
    "plt.gca().xaxis.set_major_locator(FixedLocator(x_ticks))\n",
    "plt.gca().yaxis.set_major_locator(FixedLocator(y_ticks))\n",
    "\n",
    "cbar1 = plt.colorbar()\n",
    "# Set the number of ticks for the color bar with uniformly distributed numbers\n",
    "num_ticks = 5\n",
    "c_ticks = np.linspace(np.min(concatenated_array), np.max(concatenated_array), num_ticks)\n",
    "cbar1.set_ticks(c_ticks)\n",
    "\n",
    "# Set the fontweight and fontsize for color bar tick labels\n",
    "for t in cbar1.ax.get_yticklabels():\n",
    "    t.set_weight('normal')\n",
    "    t.set_fontsize(26)  # Increase the font size for color bar tick labels\n",
    "\n",
    "# Increase the size of numbers on axis and color bar\n",
    "plt.xticks(fontsize=26)\n",
    "plt.yticks(fontsize=26)\n",
    "\n",
    "# Increase the tick size and width of the color bar\n",
    "cbar1.ax.tick_params(axis='both', which='major', labelsize=30, width=3,  length=10)\n",
    "\n",
    "# Add a dotted line at t = 0.8\n",
    "plt.axvline(x=0.8, color='black', linestyle='dotted', linewidth=5)\n",
    "\n",
    "#plt.savefig('Contour_LEM_20.pdf', dpi=500, bbox_inches=\"tight\")\n",
    "plt.savefig('contour_LEM_20.jpeg', dpi=500, bbox_inches=\"tight\")\n",
    "# Show the plot\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "b7ab04a2",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
